仅列出Linux中包含字符串的文件名
我只想使用Linux命令列出包含字符串的文件名 使用egrep时,将显示字符串的所有实例,可能是整数倍 例如:仅列出Linux中包含字符串的文件名,linux,Linux,我只想使用Linux命令列出包含字符串的文件名 使用egrep时,将显示字符串的所有实例,可能是整数倍 例如: egrep disco music_file*.txt music_file1.txt music_file2.txt music_file3.txt 可能会显示 music_file1.txt: blah blah blah disco stuff music_file1.txt: disco blah blah blah music_file1.txt: I like
egrep disco music_file*.txt
music_file1.txt
music_file2.txt
music_file3.txt
可能会显示强>
music_file1.txt: blah blah blah disco stuff
music_file1.txt: disco blah blah blah
music_file1.txt: I like to listen to italodisco
music_file2.txt: I like to party to disco
music_file3.txt: Does your dog like disco?
而我想要的只是:
egrep disco music_file*.txt
music_file1.txt
music_file2.txt
music_file3.txt
问题:在Linux中搜索字符串时,如何仅显示每个文件名的一个实例?将
-l
添加到您的egrep表达式中:
egrep -l disco music_file*.txt
从man grep
:
-l、 --具有匹配项的文件
抑制正常输出;而是从中打印每个输入文件的名称
通常打印的输出。扫描将停止
在第一场比赛中。(-l由POSIX指定。)
格雷普-我应该为你工作
grep -l pattern files*.txt
从手册页:
-l, --files-with-matches
Suppress normal output; instead print the name of each input
file from which output would normally have been printed. The
scanning will stop on the first match. (-l is specified by
POSIX.)
在linux exchange上这样做可能更好,除非您希望编写一个这样做的程序?