Wie kann ich awk oder sed verwenden, um eine Zeichenfolge nur bis zum ersten Unterstrich zu drucken?
Vor:
host100_044 2
host101_045 2
host102_046 2
Nach:
host100
host101
host102
unix
bash-scripting
unix-utils
Rubstr
quelle
quelle
Eine weitere Alternative für sed:
Wenn Sie diese in einer Datei haben, können Sie sie wie folgt aufrufen:
quelle
Ausgabe:
Mit Zeilenumbrüchen:
Ausgabe:
quelle
Verwenden von
sed
:Verwenden der
sed
Bearbeitungsoption an Ort und Stelle,quelle
awk
Lösung bereits gepostet ist (undcut
in diesem Fall wahrscheinlich am besten ist), da er danach gefragt hatsed
, aber du hast mich mit Sekunden geschlagen :-). Sie können das sogar entfernen$
, da es.*
standardmäßig mit dem Zeilenende übereinstimmt .Die
-F'_'
Anweisungawk
, Unterstriche als Feldtrennzeichen zu verwenden. Dasawk
Skript selbst druckt nur das erste Feld.quelle
Dadurch wird die Ausgabe vor
_
:sed 's/_.*//' -filename
quelle