Angenommen, es gibt eine Textdatei wie die folgende:
Hello world
types=""
Mario
types="Game"
Ich möchte das erste Vorkommen des type=""
Wortes „Programm“ finden und es anhängen. Ich brauche die Ausgabe wie folgt:
Hello world
types="program"
Mario
types="Game"
Ich muss dies in Unix-Shell-Skripten verwenden. Folgendes habe ich versucht:
sed -i '1,/types=""/s/types=""/types="program"/' filename
So wie der Befehl aussieht, fügt er nur ein, fügt nicht an. Ich habe versucht, etwas hinzuzufügen, a\
aber es funktioniert immer noch nicht.
Antwort1
Ihre sed
einzeilige Ersetzung scheint bereits wie beabsichtigt zu funktionieren:
$ cat t.txt
Hello world
types=""
Mario
types="Game"
$ sed '1,/types=""/s/types=""/types="program"/' t.txt
Hello world
types="program"
Mario
types="Game"
Es könnte sich lohnen, Ihre Frage zu bearbeiten, um zu zeigen, wasDuerhalten, wenn Sie Ihren sed
Befehl ausführen (ohne die -i
Option, die Ergebnisse auf dem Terminal auszugeben).
Übrigens ist Ihr Bereich 1,/types=""/
redundant. Sie können ihn wie folgt vereinfachen:
sed '/types=""/s/types=""/types="program"/' t.txt