Questa è la voce della pagina man per -n
:
-n
sopprime la stampa automatica dello spazio del motivo
Noto che quando non si utilizza -n
per determinate operazioni, ogni riga viene stampata su stdout (e le righe richieste vengono stampate due volte):
$ 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
Tuttavia, questa legge non vale per altri comandi:
$ sed -n 's/t/T/' test.txt
$ sed 's/t/T/' test.txt
firsT
second
Third
fourTh
fifTh
Quindi cosa fa -n
esattamente?
-n
stampare tutte le righe oltre a quelle specificatamente richieste. Pertanto, in tal caso,-n
elimina la stampa di ogni riga analizzata . Tuttavia nel terzo e quarto esempio il comportamento è diverso. In quei casi sed senza-n
non genera le linee due volte, quindi l'utilizzo-n
non sopprime la stampa di ogni riga analizzata ma piuttosto sopprime la stampa delle linee non modificate . Ho difficoltà a generalizzare quando il comportamento sarà l'uno o l'altro.