我在文件中寫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將匹配整行:) –