Ich habe große Textdateien mit durch Leerzeichen getrennten Zeichenfolgen (2-5). Die Zeichenfolgen können "'" oder "-" enthalten. Ich möchte beispielsweise das zweite Leerzeichen durch ein Rohr ersetzen.
Was ist der beste Weg?
Mit sed dachte ich darüber nach:
sed -r 's/(^[a-z'-]+ [a-z'-]+\b) /\1|/' filename.txt
Irgendwelche anderen / besseren / einfacheren Ideen?
linux
command-line
sed
awk
dnkb
quelle
quelle
sed
Info-Datei: "Hinweis: Der POSIX-Standard legt nicht fest, was passieren soll, wenn Sie dieg' and NUMBER modifiers, and currently there is no widely agreed upon meaning across
sed-Implementierungen mischen . Für GNU-sed wird die Interaktion wie folgt definiert: Übereinstimmungen vor der NUMMER ignorieren und dann alle übereinstimmen und ersetzen Spiele ab der Nummer. "sed
. Ich bin mir nicht sicher, ob ich Ihnen dafür danken soll, dass Siesed
mich noch nützlicher gemacht haben, aber ich werde es trotzdem tun. ;)Hast du deine Version ausprobiert? Hat es funktioniert? Weil ich denke, dass es im Grunde eine gute Idee ist. Ich würde es allerdings etwas anders machen:
Dies akzeptiert alle Zeichen in einem Wort, das kein Leerzeichen ist, und akzeptiert mehr als ein Leerzeichen zwischen den ersten beiden Wörtern.
quelle