Ich habe diese Beispieldatei für meine Eingabe:
xyxxyx xyxx xxyx yxyy yxyx
xxyxxx xx xyx xxx x y x xxyy
yxxy xyxxy xxy y x y
xyxy xyx yyxx xyyxyxy xyx
yxyy xyy yxyx xxyxyyx
Und ich habe versucht, nur ein "xyx"
Wort zu finden, wenn es in der Zeile und in der Rückleitungsnummer existiert. Zum Beispiel haben in dieser Eingabe nur Zeile 2 und 4 "xyx"
, und das gewünschte Ergebnis wäre nur 2 und 4 (Zeilennummern), aber der grep
Befehl gibt mir alle 5 Zeilen. dieses Ergebnis:
grep -n "xyx" test | cut -f1 -d:
1
2
3
4
5
Wenn ich Befehl ausführen folgen , ohne cut -f1 -d"
ich , dass alle finden zu sehen "xyx"
, wie in "xyxxyx"
, "xyxx"
, "xxyx"
und "yxyx"
zum Beispiel in erster Linie, während das falsch ist, mein Muster nur und nur in Zeile 2 und 4 vorhanden ist, und es ist drittes Wort in Zeile 2 und die zweiten & 5. Wort in Zeile 4. Siehe Screenshot:
Und das Ergebnis, was ich will, ist, nur getrennte "xyx"
und Rückleitungsnummer davon zu finden.
Ausgabe von Ich wünschte, wenn Muster vorhanden sind, ist es nur:
2
4
Ausgabe von Ich wünschte, wenn Muster nicht vorhanden ist, ist es nur:
1
3
5
und ich weiß auch nicht, welchen Befehl ich verwenden soll, um zu überprüfen, ob Muster nicht vorhanden sind. Ich habe versucht, mit allen möglichen grep
Befehlskombinationen, aber ich habe versagt.
Vielen Dank für Ihre Mithilfe im Voraus.