Shell-Programmierung-> grep searchstring ABER ohne den searchstring drucken

Neue Frage »

Auf diesen Beitrag antworten »
master_of_desaster Shell-Programmierung-> grep searchstring ABER ohne den searchstring drucken

Hi,

diesmal eine Frage an alle Shell-Programmierer! Ich glaube, es ist einfach zu lösen aber ich stehe voll auf'm Schlauch traurig

Mein Anliegen:
Erstmal: es soll in der Bash funktionieren.
Es geht darum, dass ich z.B. eine ellenlange Config-Datei habe.
In dieser will ich einige spezifische Zeilen bearbeiten.
Alle Zeilen, die bearbeitet wurden, sollen später ausgegeben werden. ->Darum gehts!!!

Wie soll das realisiert werden:
Beim bearbeiten einer Zeile soll gleichzeitig ein Kommentar am Ende der Zeile eingefügt werden, a la
code:
1:
#geaendert von: $USER


Um dann alle bearbeiteten Zeilen auszugeben kann ich einfach Folgendes grep'en:
code:
1:
grep $USER file

Soweit so gut! ABER: die bearbeiteten Zeilen sollen eben OHNE diesen Kommentar ausgegeben werden!
Wie kann man das lösen? Habs mit grep versucht, gepiped über cut etc. pp. aber klappt alles nicht.

Hier nochmal ein vereinfachtes Beispiel, wie so eine komplette Datei mit Kommentaren aussehen kann:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
blablzubb	toll toll
xyz 	abc 		#drkbla	#geaendert von: master_of_des
gguzg		# uzguzg
bla 	zack	öuikgöuig     #geaendert von: master_of_des
hallo		#geaendert von: master_of_des
ggg
hallo	hi		#wie gehts
scfas	iug         #geaendert von: master_of_des 

-->Davon sollen jetzt alle Zeilen gedruckt werden, die in diesem Fall den String "#geaendert von: master_of_des" enthalten, aber eben OHNE das "#geaendert von: master_of_des"... also Folgendes:
code:
1:
2:
3:
4:
5:
6:
xyz 	abc 		#drkbla
bla 	zack	öuikgöuig
hallo
scfas	iug

Hoffe, es ist verständlich, was ich meine. Tausend Dank im Voraus!!!
 
Auf diesen Beitrag antworten »
eulerscheZahl

Ich bin selbst nicht gut im Umgang mit bash, geht bestimmt besser.
code:
1:
grep -i '#geaendert von:' input.txt | grep -o '.*#geaendert von:' | rev | cut -c 16- | rev

erst die Zeilen filtern und den Teil nach dem #geaendert von löschen (mit grep)
dann die Zeile umdrehen (rev)
die ersten 16 Zeichen löschen (cut)
und nochmal umdrehen
Auf diesen Beitrag antworten »
master_of_desaster

Hi,

erstmal vielen lieben Dank @eulerscheZahl!!!
Das Kommando rev kannte ich noch gar nicht.
Ich werde deine Lösung mal ausprobieren und mich ggf. zurückmelden^^

Falls jemand noch andere Ideen hätte, wäre natürlich super! Also wie man es noch eleganter/einfacher/... lösen könnte.
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »