我想搜索文件中string1或string2或string3等的出現,並只打印這些行(輸出到標準輸出或文件,任何一個)。我怎樣才能輕鬆地在bash中做到這一點?如何搜索文件中的多個字符串
回答
grep "string1\|string2\|string3" file_to_search_in
另外:
grep -e 'string1' -e 'string2' -e 'string3'
謝謝,蘭迪,工作就像一個魅力! 而與此同時,我又發現了一個: egrep'string1 | string2'infile – topwoman 2010-04-06 11:48:54
你也可以用awk
awk '/string1|string2|string3/' file
使用awk,你也可以很容易地在需要時使用和邏輯。
awk '/string1/ && /string2/ && /string3/' file
用Perl:
perl -lne 'print if /string1|string2|string3/;' file1 file2 *.fileext
使用bash一個班輪:
while read line; do if [[ $line =~ string1|string2 ]]; then echo $line; fi; done < file
使用bash腳本:
#!/bin/bash
while read line
do
if [[ $line =~ string1|string2|string3 ]]; then
echo $line
fi
done < file
注意,空間圍繞「[[$線=〜string1 | string2]]「都是相關的。即這些失敗中擊:
[[ $line=~string1|string2 ]] # will be alway true...
[[$line =~ string1|string2]] # syntax error
可以從您的Bash one liner中省略花括號。 'do'和'done'是爲你做的。 – 2010-04-06 13:18:55
do elim_curly_braces;完成了! – dawg 2010-04-06 23:44:04
另外一個選擇,特別是如果你要搜索的字符串的數量很大,是把這些字符串成新行和使用分隔文件:
grep -f file_of_strings file_to_search
- 1. 如何搜索文本文件中的多個字符串
- 2. 搜索多個字符串
- 3. 全文多個字符串搜索
- 4. 如何搜索多個字符串,字符串
- 5. 在單個文件中搜索多個字符串
- 6. Eclipse的文件搜索 - 如何搜索特定字符串
- 7. PHP搜索文件中的字符串
- 8. 在eclipse中搜索多個字符串
- 9. 如何將多個搜索到的推文放入字符串
- 10. 通過使用字符串列表在文件中搜索多個字符串
- 11. 如何在PHP中搜索文本文件中的字符串
- 12. 如何在一個字符串中搜索兩個字符串?
- 13. 用jquery在多個html文件中搜索字符串
- 14. 搜索字符串和元數據在多個文件中
- 15. 在java文件中搜索多個字符串
- 16. java:如何在一個大文件中搜索字符串?
- 17. 搜索文本文件的字符串
- 18. 如何爲字符串搜索多個文本節點
- 19. 在htm文件中搜索字符串
- 20. 從文件中搜索字符串
- 21. 在pdf文件中搜索字符串
- 22. 在.cs文件中搜索字符串
- 23. 在txt文件中搜索字符串
- 24. 如何在單個查詢中搜索多個子字符串
- 25. 如何搜索mvc3中單個文本框中輸入的多個字符串
- 26. 如何搜索ArrayList中包含多個單詞的字符串?
- 27. 在多個文件中搜索多個字符串的grep工具
- 28. Excel多字符串搜索
- 29. 搜索字符串文字
- 30. 如何使用bash腳本在日誌文件中搜索多個字符串
謝謝陳先生的快速回復。當然,這很有用 - 光滑! – topwoman 2010-04-06 11:54:47
也許你也可以接受他的答案,如果它有效。 – Anders 2010-04-06 12:06:05