我在文件中写NotEmpty.txt我所有的非空的文本文件的目录目录用下面的命令:如何grep只匹配正则表达式?
find dir/ -not -empty -ls | grep -E "*.txt" > NotEmpty.txt
我想只打印匹配正则表达式,而不是全部线上的信息。这怎么可能?
我在文件中写NotEmpty.txt我所有的非空的文本文件的目录目录用下面的命令:如何grep只匹配正则表达式?
find dir/ -not -empty -ls | grep -E "*.txt" > NotEmpty.txt
我想只打印匹配正则表达式,而不是全部线上的信息。这怎么可能?
问题是你对每一个匹配都执行ls
,所以输出包含很多东西。而应使用此find
命令来打印名称。
注意,事实上,你可以在一次拍摄,包括选择只.txt
文件所做的一切:
find your_dir/ -not -empty -name "*.txt" -print > NotEmpty.txt
# ^^^^^^^^^^^^^ ^^^^^^
# | |
# just .txt files |
# |
# print its name instead of `ls`ing it
你也可以说-type f
只是检查文件,该文件其实我想这是假设参数-not -empty
。
谢谢,它的工作原理! – bam500
使用grep的-o
参数指定您只需要匹配部分。
例子:
$ echo foo bar baz | grep -o "foo"
foo
所以要打印像 'DIR/FILENAME.TXT' 唯一的东西? Btw * .txt将匹配整行:) –