簡體   English   中英

我怎么能在循環中grep?

[英]How can I grep in a loop?

我有一個包含單獨行文本的文件。

text1
text2
text3
textN

我有一個包含許多文件的目錄。 我想grep這個特定目錄中的每一行。 有什么簡單的方法可以做到這一點?

沒有必要循環,你可以使用帶-f選項的grep來從文件中獲取模式:

grep -f pattern_file files*

man grep

-f FILE, - file = FILE

從FILE獲取模式,每行一個。 空文件包含零模式,因此不匹配任何內容。 (-f由POSIX指定。)

測試

$ cat a1
hello
how are you?

$ cat a2
bye
hello

$ cat pattern
hello
bye

$ grep -f pattern a*
a1:hello
a2:bye
a2:hello

你也可以使用標准的bash循環:

for i in text*; do grep "pattern" $i; done

甚至更好的選擇沒有循環:

grep "pattern" text*

如果在*之后按Tab鍵,那么shell會將其擴展為滿足條件的文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM