Sie möchten Zeilen löschen, die mit einem #
starten und eine #
und alle folgenden Zeichen irgendwoanders auf einer Linie zu entfernen. Diese Beschreibung praktisch definiert, was das sed
Skript sollte folgendermaßen aussehen:
sed -e '/^#/d' -e 's/[[:space:]]*#.*//' text0.txt
Dies entfernt alle Leerzeichen vor den #
am Ende einer zu Linie. Man könnte, dass in ein Argument kombinieren, wenn Sie darauf bestehen:
sed '/^#/d; s/[[:space:]]*#.*//' text0.txt
Ich persönlich denke, dass es einfacher ist, die einzelnen Operationen zu lesen, wenn sie in getrennten Argumente sind, aber das ist eine Wahl, die Sie für sich selbst machen können.
Beachten Sie, dass keine zwei (oder mehr) Befehle ausgeführt werden müssen. Eins ist ausreichend.
Haben Sie versucht, dies selbst zu erforschen? – 123
Danke für den Zeiger. Tatsächlich löst es das Problem. Ich hatte keine Idee, sed zu verwenden, und ich konnte "#" nicht als Schlüsselwort suchen. – ywat
Ich habe gerade '' Kommentar Bash "auf google suchen. – 123