编写一个shell脚本,以发现greps文件并仅输出这些文件名



我想特别搜索文件夹和内容,然后我只想打印找到的文件的名称。我有一个命令:

for file in $(find from | xargs grep 'move')
do 
   echo $file
done

它打印例如:

from/1.txt:move
from/2.txt:some text
move
from/3.txt:move text

但我想要:

from/1.txt
from/2.txt
from/3.txt

我试图通过使用:

来切割不必要的部分
${file%:*}

这给出结果:

from/1.txt
from/2.txt
move
from/3.txt

剩下"移动"。

GREP具有递归以及'Just List fileName'选项,所以这应该有效:

grep -r -l "move" from

使用选项-lgrep,即

for file in $(find from | xargs grep -l 'move')
do 
   echo $file
done

甚至更好:

for file in $(find from -type f -print0 | xargs -r0 grep -l 'move')
do 
   echo $file
done

相关内容

  • 没有找到相关文章

最新更新