我的文件夹包含大约100个文件。我想在每个文件中搜索特定的单词,只从每个文件中选取这些行并将它们放在单独的文件中。例如:
查找包含单词" HELLO" (区分大小写)在FILE1.txt,FILE2.txt,FILE3.txt。
中From FILE1, copy those lines and put them in a new file, FILE1_BK.txt
From FILE2, copy those lines and put them in a new file, FILE2_BK.txt
From FILE3, copy those lines and put them in a new file, FILE3_BK.txt
我知道如何一次执行此文件,但无法一次为多个文件编写脚本。
grep "HELLO" FILE1.txt > FILE1_BK.txt
需要将其合并到循环中。
for f in myFolder; do something; done;
提前致谢!
答案 0 :(得分:1)
为什么要手动循环?为什么不grep "HELLO" *.txt > FILE1_BK.txt
?
for f in *.txt; do
grep "HELLO" $f > $f_found.txt;
done
答案 1 :(得分:1)
假设您有文件路径存储在名为 filenames.txt 的文件中,那么您可以这样做:
while read -r filepath; do
grep -r "pattern" $filepath > "$filepath""-output"
done < filenames.txt
这显然假设所有文件路径都在 filenames.txt
的新行中答案 2 :(得分:0)
表示./myFolder/*中的f;做grep&#34; SEARCHWORD&#34; $ f&gt; $ f.bak;完成的;