Jak zastąpić nową linię przecinkiem za pomocą polecenia „sed”

Jak zastąpić nową linię przecinkiem za pomocą polecenia „sed”

Każdy znak lub ciąg można wymienić za pomocą polecenia „SED”. Czasami musimy zastąpić nową postać (\ n) w pliku przecinkiem. W tym artykule używamy polecenia „sed”, aby zastąpić \ n przecinkiem.

Używając „sed” do zastąpienia \ n przecinkiem

Podczas wymiany \ n przecinkiem może wystąpić wiele problemów. Domyślnie każda linia kończy się \ n podczas tworzenia pliku. Polecenie „SED” może łatwo podzielić na \ n i zastąpić nową linię dowolną postacią. Kolejnego ogranicznika można użyć zamiast \ n, ale tylko wtedy, gdy używa się gnU sed. Gdy \ n brakuje w ostatnim wierszu pliku, GNU sed może uniknąć drukowania \ n. Ponadto \ n jest zwykle dodawane do każdego kolejnego wyjścia „sed”.

Utwórz plik

W tym artykule pokażemy, jak użyć polecenia „sed”, aby zastąpić \ n przecinkiem. Aby śledzić ten samouczek, utwórz plik tekstowy o nazwie Klienci.tekst z następującymi informacjami o kliencie tabelarycznym.

ID Nazwa E-mail Telefon
C01 MD. Rakib [email protected] 01856233238
C02 Meher Afroze [email protected] 01733536342
C03 Fakrul Ahsan [email protected] 01934737248
C04 Helal Uddin [email protected] 01534895898
C05 Nusrat Jahan [email protected] 01866345254

Przykład 1: Zastąp \ n przecinkiem za pomocą -Z

Opcja -Z służy do konwersji \ n na znak zerowy (\ 0). Zawartość pliku jest traktowana jako pojedynczy wiersz, jeśli nie zawiera żadnych zerowych znaków. Polecenie „SED” przekonwertuje nową linię na znak zerowy i zastąpi każdą \ n przecinkiem za pomocą pierwszego wyszukiwania i wymiany wzoru. Tutaj „g” służy do globalnego wyszukiwania \ n. Z drugim wzorem wyszukiwania i wymiany ostatnia przecinek zostanie zastąpiona \ n.

Klienci $ CAT.tekst
$ sed -z 's/\ n/,/g; s/, $/\ n/' klienci.tekst

Następujące dane wyjściowe zostaną wyprodukowane po uruchomieniu poleceń.

Przykład 2: Zastąp \ n przecinkiem za pomocą A, B, $! oraz n

Polecenie „sed” można użyć do zastąpienia \ n przecinkiem za pomocą użycia A, B, N i $!. Tutaj, A służy do dołączania zadań, B służy do rozgałęzienia treści, N służy do przejścia do następnej linii i $! służy do zapobiegania zastosowaniu zadania wymiany do ostatniego wiersza. Polecenie zastąpi każdy \N z przecinkiem oprócz ostatniej linii.

Klienci $ CAT.tekst
$ sed ': a; n; $!BA; s/\ n/,/g 'klienci.tekst

Następujące dane wyjściowe zostaną wyprodukowane po uruchomieniu poleceń.

Przykład 3: Zamień \ n przecinkiem za pomocą H, H, D, X i Y

Jeśli chcesz wymienić \N) Z przecinkiem w małym pliku można użyć następującego polecenia „sed”. Tutaj, H służy do dołączenia ostatniego wiersza do tekstu trzymającego, 1h służy do kopiowania każdego wiersza pliku do tekstu trzymającego z pierwszego wiersza, $!D służy do usuwania wszystkich linii oprócz ostatniej linii, X służy do wymiany przestrzeni tekstowej i wzoru, oraz y służy do wymiany każdego \N w tekście trzymającym z przecinkiem.

Klienci $ CAT.tekst
$ sed 'h; 1h; $!d; x; y/\ n/,/'klienci.tekst

Następujące dane wyjściowe zostaną wyprodukowane po uruchomieniu poleceń.

Przykład 4: Zastąp \ n przecinkiem za pomocą -N, H, H, G i P

Polecenie „sed” można użyć do wymiany \N z przecinkiem z -N opcja, która zapobiega automatycznym drukowaniu. Jak w poprzednim przykładzie, H jest używany tutaj do dołączenia ostatniego wiersza do tekstu trzymającego, 1h służy do kopiowania każdego wiersza pliku do tekstu trzymającego, $ odnosi się do ostatniego wiersza pliku, G służy do kopiowania z tekstu trzymającego i P służy do drukowania.

Klienci $ CAT.tekst
$ sed -n "h; 1h; \ $ g; s/\ n/,/g; p".tekst

Następujące dane wyjściowe zostaną wyprodukowane po uruchomieniu powyższych poleceń.

Przykład 5: Zastąp \ n przecinkiem za pomocą H, X, P

H, X i P zostały wyjaśnione w poprzednich przykładach. Pierwsze wyszukiwanie i ekspresja zastąpiają każdy \N z przecinkiem, a drugie wyszukiwanie i ekspresja wymiany zastąpi przecinek na początku linii przestrzenią.

Klienci $ CAT.tekst
$ sed -n 'h; $ x; s/\ n/,/g; s/^, //; p;' klienci.tekst

Następujące dane wyjściowe zostaną wyprodukowane po uruchomieniu powyższych poleceń.

Przykład 6: Zamień \ n przecinkiem za pomocą N i „Cat”

Polecenie „CAT” jest używane tutaj do wysyłania zawartości pliku do polecenia „SED” i N służy do przejścia do następnej linii.

Klienci $ CAT.tekst
Klienci $ CAT.txt | sed 'n; s/\ n/,/'

Następujące dane wyjściowe zostaną wyprodukowane po uruchomieniu powyższych poleceń.

Wniosek

Może być konieczne zastąpienie \ n przecinkiem w celu przesyłania danych z jednego formatu pliku do drugiego. Ten typ wymiany można również wykonać za pomocą innych poleceń Linux. Wiele opcji poleceń, takich jak H, N, H i X, można użyć z poleceniem „SED”, aby wykonać to zadanie. Ten samouczek przechodzi kilka sposobów użycia polecenia „sed”, aby zastąpić \ n przecinkiem.