Dies ist der Manpage-Eintrag für -n
:
-n
Unterdrücken Sie das automatische Drucken des Musterbereichs
Ich stelle fest , dass , wenn nicht die Verwendung -n
für bestimmte Operationen, wobei jede Zeile in stdout gedruckt wird (und die angeforderten Zeilen gedruckt zweimal):
$ cat test.txt
first
second
third
fourth
fifth
$ sed -n '2,3p' test.txt
second
third
$ sed '2,3p' test.txt
first
second
second
third
third
fourth
fifth
Dieses Gesetz gilt jedoch nicht für andere Befehle:
$ sed -n 's/t/T/' test.txt
$ sed 's/t/T/' test.txt
firsT
second
Third
fourTh
fifTh
Was -n
genau macht es also?
-n
wird jede Zeile zusätzlich zu den speziell angeforderten Zeilen ohne Ausdruck gedruckt. Somit wird in diesem Fall-n
das Drucken jeder analysierten Zeile unterdrückt . Im dritten und vierten Beispiel ist das Verhalten jedoch unterschiedlich. In diesen Fällen gibt sed without-n
die Zeilen nicht zweimal aus, daher unterdrückt die Verwendung-n
nicht das Drucken jeder analysierten Zeile , sondern das Drucken von nicht geänderten Zeilen . Ich habe Schwierigkeiten zu verallgemeinern, wann das Verhalten das eine oder andere sein wird.