To jest wpis strony podręcznika dla -n
:
-n
wyłącz automatyczne drukowanie przestrzeni wzorów
Zauważam, że gdy nie używam -n
do niektórych operacji, każda linia jest drukowana na standardowym wyjściu (a żądane linie są drukowane dwukrotnie):
$ 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
Jednak to prawo nie dotyczy innych poleceń:
$ sed -n 's/t/T/' test.txt
$ sed 's/t/T/' test.txt
firsT
second
Third
fourTh
fifTh
Co -n
dokładnie robi ?
-n
wydrukowano każdej linii oprócz tych, które zostały specjalnie zamówione. Zatem w takim przypadku-n
pomija drukowanie każdej przeanalizowanej linii . Jednak w trzecim i czwartym przykładzie zachowanie jest inne. W takich przypadkach-n
funkcja sed bez nie wysyła wierszy dwa razy, dlatego użycie-n
nie wstrzymuje drukowania każdej przeanalizowanej linii, ale raczej wstrzymuje drukowanie niezmienionych linii . Mam trudności z uogólnieniem, kiedy zachowanie będzie jedno lub drugie.