我想特别搜索文件夹和内容,然后我只想打印找到的文件的名称。我有一个命令:
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
使用选项-l
到grep
,即
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