Ich lerne heutzutage sed. Es gibt diese Tilde '~', die mich mehr als alles andere verwirrt.
Zum Beispiel der Befehl
sed -n '1~2 w output.txt' input.txt
druckt die ungeradzahligen Zeilen (in die Datei output.txt).
Im selben Tutorial wird auch angegeben, dass Zeilen von 1 bis 2 übersprungen werden und dann die Zeilen neben Zeile 2 gedruckt werden, falls wir sie verwenden
sed -n '1~2 p' input.txt
Was ist die absolute Interpretation dieser Tilde?
Antworten:
Dies ist eine GNU-
sed
Erweiterung:Ihre beiden Beispiele stimmen mit denselben Zeilen überein, aber das erste schreibt (
w
) sie in eine Datei, während das zweite sie (p
) druckt , wohin auch immer die Standardausgabe geht.Beziehen Sie sich im Allgemeinen immer auf das Handbuch des Befehls. Das Handbuch ist selten mehrdeutig. Die Anwendung eines Befehls durch Kombinieren mehrerer Aspekte seiner Funktionalität kann in einem Lernprogramm manchmal schwierig zu erklären sein (und manchmal versucht ein Lernprogramm, die Dinge verständlicher zu machen, indem dieselbe Anweisung auf viele Arten umformuliert wird, was zu Verwirrung führen kann) Das Handbuch ist die eindeutige Referenz für jedes Bit dessen, was der aggregierte Befehl tut.
quelle