運行它包含所有在您嘗試搜索文件的目錄裏面這個命令,
grep '28590301456967003510KKK.*00051' *.txt
例子:
$ cat foo.txt
YYY28590301456967003510KKKxxxxxxxxxxxx_001_00051_20140616.dat
YYY5125741025CCCxxxxxxxxxxxxxxxxxxxxxx_002_05977_20140616.dat
$ cat bar.txt
YYY28590301456967003510KKKxxxxxxxxxxxx_001_00051_20140616.dat
YYY5125741025CCCxxxxxxxxxxxxxxxxxxxxxx_002_05977_20140616.dat
foo
bar
$ grep '28590301456967003510KKK.*00051' *.txt
foo.txt:YYY28590301456967003510KKKxxxxxxxxxxxx_001_00051_20140616.dat
bar.txt:YYY28590301456967003510KKKxxxxxxxxxxxx_001_00051_20140616.dat
如果你想裏面的文件搜索模式哪些存在於子目錄中,你可以試試這個命令
$ find . -mindepth 1 -type f -name "*.txt" | xargs grep '28590301456967003510KKK.*00051'
./foo.txt:YYY28590301456967003510KKKxxxxxxxxxxxx_001_00051_20140616.dat
./foo-bar/aa.txt:YYY28590301456967003510KKKxxxxxxxxxxxx_001_00051_20140616.dat
它找到文件及其路徑以及與該模式匹配的文本。
OR
,你可以使用grep也對內部子目錄中的文件進行搜索,
$ grep -R --include="*.txt" '28590301456967003510KKK.*00051' .
./aa1.txt:YYY28590301456967003510KKKxxxxxxxxxxxx_001_00051_20140616.dat
./foo-bar/ram.txt:YYY28590301456967003510KKKxxxxxxxxxxxx_001_00051_20140616.dat
-R
- >遞歸
--include="*.txt"
- >僅.txt文件
'28590301456967003510KKK.*00051'
- >模式
.
- >當前目錄(從目錄grep操作將要發生)。
無論何時您在shell中編寫循環來解析文本文件,您都有錯誤的方法。這聽起來像你只需要一個簡單的'grep'命令(請參閱@ AvinashRaj的答案),但如果您的要求比您告訴我們的還多,那麼您就可以使用'awk'。無論哪種情況,您都不會編寫shell循環。 –