Rozumiem, że sedto polecenie do manipulowania plikiem tekstowym.
Z mojego Googlinga wydaje się, że -ioznacza to wykonanie operacji na samym pliku, czy to prawda?
Co '1d'?
Rozumiem, że sedto polecenie do manipulowania plikiem tekstowym.
Z mojego Googlinga wydaje się, że -ioznacza to wykonanie operacji na samym pliku, czy to prawda?
Co '1d'?
Odpowiedzi:
W sed:
-i opcja edytuje plik wejściowy w miejscu
'1d' usunie pierwszy wiersz pliku wejściowego
Przykład:
% cat file.txt
foo
bar
% sed -i '1d' file.txt
% cat file.txt
bar
Pamiętaj, że przez większość czasu dobrym pomysłem jest zrobienie kopii zapasowej podczas korzystania z tej -iopcji, aby mieć kopię zapasową oryginalnego pliku na wypadek nieoczekiwanej zmiany.
Na przykład, jeśli wykonasz:
sed -i.orig '1d' file.txt
oryginalny plik zostanie zachowany jako file.txt.origplik zmodyfikowany file.txt.
sed '1d' file.txt
Drukuje zawartość file.txt; z wyłączeniem pierwszej linii; na standardowe wyjście.
sed -i '1d' file.txt # GNU, NetBSD, OpenBSD
sed -i '' '1d' file.txt # FreeBSD, macOS
Drukuje zawartość file.txt; z wyłączeniem pierwszej linii; z powrotem w file.txt; nadpisywanie oryginału.
sed -i.back '1d' file.txt
Tworzy kopię zapasową oryginału (as file.txt.back) przed dokonaniem zmian. Z wyjątkiem FreeBSD sedsufiks (tutaj .back) musi być dołączony do -iopcji (w tym samym argumencie, bez spacji między -ii .back).
sed '2d' file.txt
Drukuje zawartość file.txt; z wyłączeniem drugiej linii; na standardowe wyjście.
(Podanie dowolnej liczby spowoduje usunięcie odpowiedniej linii).
Kompatybilny również z -iflagą.
sed '1!d' file.txt
Drukuje zawartość file.txt; z wyłączeniem wszystkich oprócz pierwszej linii; na standardowe wyjście.
(Innymi słowy; drukowany jest tylko pierwszy wiersz).
Kompatybilny również z -iflagą.
sed '$d' file.txt
Drukuje zawartość file.txt; z wyłączeniem ostatniej linii; na standardowe wyjście.
Kompatybilny również z -iflagą.
W sed -hmają:
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if SUFFIX supplied)
i „wykonaj operację na samym pliku”. absolutnie to.
I manpowiedział: „Sed jest edytorem strumieniowym. Do wykonywania podstawowych przekształceń tekstu w strumieniu wejściowym (pliku lub danych wejściowych z potoku) służy edytor strumieni. ”
jako twoje pytanie
sed -i '1d' file_name
oznacza: usuń pierwszy wiersz w pliku "file_name"na miejscu i wykonaj kopię zapasową do pliku. (podobnie jak edytowanie pliku i usuwanie pierwszego wiersza bezpośrednio).
-isprawdzenia, co się stanie, a następnie użyć-ido zmiany pliku.