Ich habe die folgende Datei mit n Reihen:Zeilen löschen, die Muster von ID übereinstimmen
>name.1_i4_xyz_n
>name.1_i1_xyz_n
>name.1_i1_xyz_n
>name.1_i1_xyz_m
>name.1_i2_xyz_n
>name.1_i2_xyz_m
>name.1_i7_xyz_m
>name.1_i4_xyz_n
...
Ich möchte Zeilen löschen, die mit m
endet. Im Beispiel wäre die Ausgabe:
>name.1_i4_n
>name.1_i4_n
...
Bitte beachte, dass ich i2
gelöscht haben, da es zwei Datensätze hat und einer von ihnen endet mit m
. Gleiches mit i1
.
Irgendwelche Hilfe? Ich möchte es einfach halten und mache es mit nur einer Codezeile. Das ist, was ich habe, so weit:
$ grep "i._.*." < input.txt | sort -k 2 -t "_" | cut -d'_' -f1,2,4
>name.1_i1_m
>name.1_i1_n
>name.1_i1_n
>name.1_i2_m
>name.1_i2_n
>name.1_i4_n
>name.1_i4_n
>name.1_i7_m
...
ja, alle von ihnen beginnen mit '>' – benhid
Oder um es anders zu setzen Sie wollen _i4? –