Jak zamienić wiele linii za pomocą polecenia `sed`?

How Replace Multiple Lines Using Sed Command



Czasami wymaga zastąpienia wielu wierszy pliku dowolnym konkretnym znakiem lub tekstem. W systemie Linux istnieją różne polecenia zastępujące wiele wierszy pliku. Polecenie `sed` jest jednym z nich, które wykonuje tego typu zadania. Pełną formą `sed` jest Edytor Steam i jest on używany głównie do czytania i konwertowania tekstu na różne sposoby za pomocą wyrażenia regularnego. W tym samouczku wyjaśniono, w jaki sposób można użyć tego polecenia do zastąpienia wielu wierszy pliku na różne sposoby.

Powszechnie używana ściągawka „sed”:

Najczęściej używane znaki używane w poleceniu `sed` są wyjaśnione w poniższej tabeli.







Postać Cel, powód
do Służy do dołączania treści.
b Służy do rozgałęziania treści.
C Służy do zmiany treści.
D Służy do usuwania wiersza pliku.
D Służy do usuwania pierwszego wiersza pliku.
g Służył do kopiowania z tekstu trzymającego.
g Służy do dołączania z tekstu gospodarstwa.
h Służy do kopiowania w tekście gospodarstwa.
h Służy do dołączenia do tekstu trzymającego.
i Służy do wstawiania.
i Służy do drukowania linii zastępczej.
n Służy do przejścia do następnej linii.
n Służy do dołączenia następnej linii wejściowej.
P Służy do drukowania.
P Służy do drukowania pierwszej linii.
Co Służy do rzucenia palenia.
Q Służy do natychmiastowego zakończenia.
r Służy do odczytywania pliku.
r Służy do odczytywania wiersza z pliku.
s Służy jako substytut.
T Służy do testowania substytucji.
T Służy do testowania braku substytucji.
w Służy do zapisu do pliku.
W Służy do napisania linii do pliku.
x Służy do zamiany wzorów i trzymania.
oraz Służy do tłumaczenia.
z Służy do czyszczenia linii.
„=” Służy do drukowania numeru linii.

Zamień wiele wierszy za pomocą polecenia `sed` z terminala:

W tej części tego samouczka pokazano, w jaki sposób można użyć polecenia `sed` do zastąpienia wielu linii z pliku z terminala. Utwórz plik o nazwie sed.txt z następującą treścią przetestuj polecenia tej części.



sed.txt



Pełna forma sed to edytor strumieni.





Jest to narzędzie uniksowe, które służy do odczytywania i konwertowania tekstu w innym formacie.

Został opracowany przez Lee E. McMahona.



Służy do przetwarzania tekstu.

Obsługuje wyrażenia regularne.

Przykład-1: Zastąp dwie kolejne linie

Następujące polecenie `sed` zastąpi dwa kolejne wiersze innym wierszem. W tym przypadku opcja -z służy do zastąpienia kolejnych wierszy danymi o wartości null przed dodaniem tekstu zastępczego. Zgodnie z poleceniem 3r & Di 4NSwiersze pliku zostaną zastąpione tekstem, „To bardzo przydatne narzędzie” .

$Kotsed.txt
$sed -z 's/It został opracowany przez Lee E. McMahona. Jest używany do tekstu
przetwarzanie./To bardzo przydatne narzędzie./'
sed.txt

Poniższe dane wyjściowe pojawią się po uruchomieniu poleceń.

Przykład-2: Zamień wiele linii na podstawie dopasowania i flagi globalnej

Następujące polecenie `sed` zastąpi wszystkie linie zaczynające się słowem, 'Ono' słowem „ Ta linia jest zastąpiona „.

$Kotsed.txt
$sed 's/^It.*/Ta linia jest zastąpiona/g'sed.txt

Poniższe dane wyjściowe pojawią się po uruchomieniu poleceń. Trzy wiersze zawierają słowo ‘ Ono ' w pliku. Tak więc te wiersze zostały zastąpione tekstem zastępczym.

Przykład-3: Zamień wiele wierszy na podstawie polecenia dopasowania i następnego wiersza

Następujące polecenie `sed` zastąpi słowo,’ jest ‘ słowem ‘ było ‘ z poleceniem następnego wiersza, ‘n’.

$Kotsed.txt
$sed ' {n;/jest/ {s/jest/był/}}'sed.txt

Poniższe dane wyjściowe pojawią się po uruchomieniu poleceń. Tutaj, 'jest' istnieje w 2NSi 4NSwierszy pliku, a te wiersze są modyfikowane przez słowo 'było' .

Zastąp wiele wierszy, tworząc plik skryptu `sed`:

W poprzednich przykładach polecenia `sed` były wykonywane z terminala. Ale jest to język skryptowy i jeśli skrypt zawiera wiele instrukcji, lepiej jest utworzyć plik sed ze skryptem. Utwórz plik tekstowy o nazwie studenci.txt z następującą zawartością, w której zostanie zastosowany skrypt `sed`.

studenci.txt

ID: 111045
Imię i nazwisko: Robert
Departament: CSE
Partia: 35

ID: 111876
Imię: Józef
Dział: BBA
Partia: 27

ID: 111346
Imię i nazwisko: William
Departament: CSE
Partia: 45

ID: 111654
Imię: Karol
Dział: EEE
Partia: 41

ID: 111346
Imię: Jan
Departament: CSE
Partia: 25

ID: 111746
Imię: Tomasz
Departament: CSE
Partia: 15

Przykład-4: Zamień wiele wierszy pliku za pomocą pliku skryptu `sed`

Utwórz plik seda o nazwie to zamień.sed z następującą treścią, aby zastąpić wiele wierszy na podstawie wzorca wyszukiwania. Tutaj słowo ‘ CSE ‘ zostanie przeszukane w pliku tekstowym, a jeśli dopasowanie istnieje, ponownie przeszuka numer 35 i 15. Jeśli w pliku istnieje drugie dopasowanie, zostanie zastąpione numerem 45.

zamień.sed

/CSE/ {
p;n;
/35/ {
s/35/Cztery pięć/;
p;d;
}
/piętnaście/ {
s/piętnaście/55/;
p;d;
}
}
P;

Uruchom następujące polecenie, aby sprawdzić istniejącą zawartość pliku. „CSE” pojawiło się w pliku tekstowym czterokrotnie. 35 i 15 występują w dwóch miejscach.

$Kotstudenci.txt

Następujące polecenie zastąpi zawartość wielu linii na podstawie skryptu sed.

$sed -n -Fzamień.sed studentów.txt

Poniższe dane wyjściowe pojawią się po uruchomieniu polecenia.

Wniosek

W tym samouczku pokazano różne sposoby zastępowania wielu wierszy lub zawartości wielu wierszy za pomocą polecenia `sed`. Jak skrypt `sed` może być wykonany z pliku sed jest również pokazany w tym samouczku. Mam nadzieję, że ten samouczek pomoże czytelnikowi zastąpić wiele wierszy dowolnego pliku za pomocą polecenia `sed`.