Ich versuche zu überprüfen, ob alle angegebenen Muster in einer Datei vorhanden sind. Wenn ja, zeige Erfolg.Bash: Wie überprüft man, ob alle zu prüfenden Muster in einer Datei in Unix vorhanden sind
zB: Ich habe eine Datei wie unten
$ cat test.txt
ABC
123
xyz
ABC
MNO
qwe
$
ich die Muster haben, sind zu suchen ABC und 123. Im obigen Fall sollte es also Erfolg zeigen.
Wenn mein Muster ABC und 234 ist, sollte es FAILURE anzeigen.
Ich habe wie unten versucht:
$ grep -e ABC -e 123 test.txt && echo "SUCCESS" || echo "FAIL"
ABC
123
ABC
SUCCESS
$
$ grep -e ABC -e 234 test.txt && echo "SUCCESS" || echo "FAIL"
ABC
ABC
SUCCESS
$
Aber die oben wird der Erfolg zurück, auch wenn ein Muster auch ausfällt.
Auch versucht wie unten. Aber es dauert 2 Iterationen in der Datei.
$ grep -w "ABC" test.txt && grep -w "123" test.txt && echo "SUCCESS" || echo "FAIL"
ABC
ABC
123
SUCCESS
$ grep -w "ABC" test.txt && grep -w "234" test.txt && echo "SUCCESS" || echo "FAIL"
ABC
ABC
FAIL
$
Hilfe, um dies in einem einzigen Parsing der Datei zu erreichen?
Im Grunde wollte ich wissen, ob AND-Operation mit grep nach Mustern .Auch möglich ist, was ist der effizienteste Weg, dies zu erreichen? –