ich eine Datei mit folgenden Aufzeichnungen habensed mehrere Ersetzungen mit Zeilenbereich
user1,fuser1,luser1,[email protected],data,user1
user2,fuser2,luser2,[email protected],data,user2
user3,fuser3,luser3,[email protected],data,user3
Ich wollte ein paar Textersetzungen von
user1, fuser1, luser1, user1 @ test.com, Daten, user1 auszuführen
zu
New_user1, New_fuser1, New_luser1, New_user1 @ test.com, Daten, New_user1
also schrieb ich unten sed Skript.
sed -i -e 's/user/New_user/g; s/fuser/New_fuser/g; s/luser/New_luser/g' file
Dies funktioniert perfekt. Jetzt habe ich eine Anforderung, die ich in bestimmten Zeilenbereich ersetzen möchte.
start=2
end=3
sed -i -e ''${start},${end}'s/user/New_user/g; s/fuser/New_fuser/g; s/luser/New_luser/g' file
Dieser Befehl ersetzt jedoch das Muster in allen Zeilen. Beispiel ausgegeben wird,
user1,New_fuser1,New_luser1,[email protected],data,New_user1
user2,New_fuser2,New_luser2,[email protected],data,New_user2
user3,New_fuser3,New_luser3,[email protected],data,New_user3
Sieht aus wie Bereich nur zum ersten Ausdruck angewandt wird, immer und verbleibenden Ausdrücke auf ganze Datei angewandt zu werden. Wie kann dieser Bereich auf alle Ausdrücke angewendet werden?
Ich glaube nicht, dass 'sed' Skript _w orks perfect_: 'New_user1, fNew_user1, lNew_user1'. Was ist Ihre erwartete Ausgabe mit diesen Eingabedaten? –