2016-07-20 2 views
1

Unten sind die Beispieldateien, in denen ich nach den Dateien suchen, die nicht das Wort "DEF" hat oder auskommentiert ist, wenn vorhanden.Finden Sie die Dateien, die keine Zeichenkette oder haben es aber auskommentiert

cat text.txt_1 
ABC 
DEF 
GHI 

cat text.txt_2 
ABC 
#DEF 
GHI 

cat text.txt_3 
ABC 
GHI 

Ich versuche, so etwas wie diese grep -Lr "DEF" . || grep -iwr "DEF" . | grep "^#" zu tun, aber es funktioniert nicht

Vielen Dank im Voraus!

+1

Etwas auf den Linien von 'grep "^ [^ #] * DEF"'? – anishsane

Antwort

1

Wenn Sie gnu grep dann verwenden:

grep -zvlr '^[^#]*DEF' 

Andernfalls können Sie awk mit find verwenden:

find . -type f -name 'text.*' -exec awk '/^[^#]*DEF/{p=1} END{if (!p) print FILENAME}' {} \; 
+0

Kannst du mir bitte sagen .. wie achte ich hier unsensibel? – CodeDevotion

+0

Mit gnu awk können Sie verwenden: 'finden. -type f -name 'text. *' -exec awk -v IGNORECASE = 1 '/^[^ #] * DEF/{p = 1} END {if (! p) drucke den FILENAME}' {} \; ' – anubhava

+1

Danke @anubhava – CodeDevotion

Verwandte Themen