Jak zastąpić znak nowej linii przecinkiem za pomocą polecenia `sed`?

How Replace Newline With Comma Using Sed Command



Dowolny znak lub łańcuch można zastąpić za pomocą polecenia `sed`. Czasami musimy zastąpić znak nowej linii ( ) w pliku przecinkiem. W tym artykule używamy polecenia `sed`, aby zastąpić przecinkiem.

Użycie `sed` do zastąpienia przecinkiem

W przypadku zamiany na przecinek może wystąpić wiele problemów. Domyślnie każda linia kończy się na podczas tworzenia pliku. Polecenie `sed` można łatwo podzielić na i zastąpić znak nowej linii dowolnym znakiem. Zamiast można użyć innego ogranicznika, ale tylko wtedy, gdy używany jest GNU sed. Gdy w ostatnim wierszu pliku brakuje , GNU sed może uniknąć drukowania . Co więcej, jest zwykle dodawane do każdego kolejnego wyjścia `sed`.







Utwórz plik

W tym artykule pokażemy, jak użyć polecenia `sed` do zastąpienia przecinkiem. Aby podążać za tym samouczkiem, utwórz plik tekstowy o nazwie Klienci.txt z następującymi tabelarycznymi informacjami o kliencie.



NS Nazwa E-mail Telefon
c01 lek. Rakib [e-mail chroniony] 01856233238
c02 Meher zamroził [e-mail chroniony] 01733536342
c03 Fakrul Ahsan [e-mail chroniony] 01934737248
c04 Helal Uddin [e-mail chroniony] 01534895898
c05 Nusrat Jahan [e-mail chroniony] 01866345254

Przykład 1: Zastąp przecinkiem, używając -z

Opcja -z służy do konwersji na znak null (). Zawartość pliku jest traktowana jako pojedyncza linia, jeśli nie zawiera żadnych znaków null. Polecenie `sed` skonwertuje znak nowej linii na znak null i zastąpi każdy przecinkiem przy użyciu pierwszego wzorca wyszukiwania i zamiany. Tutaj „g” służy do globalnego wyszukiwania . Przy drugim wzorcu wyszukiwania i zamiany ostatni przecinek zostanie zastąpiony przez .



$KotKlienci.txt

$sed -z 's/ /,/g;s/,$/ /'Klienci.txt

Po uruchomieniu poleceń zostaną wygenerowane następujące dane wyjściowe.





Przykład 2: Zastąp przecinkiem za pomocą a, b, $! oraz n

Polecenie `sed` może być użyte do zastąpienia przecinkiem za pomocą a, b, N i $! . Tutaj, do służy do dołączania zadań, b służy do rozgałęziania treści, n służy do przejścia do następnej linii i $! służy do zapobiegania zastosowaniu zadania zastępowania do ostatniego wiersza. Polecenie zastąpi każde z nich z przecinkiem z wyjątkiem ostatniego wiersza.



$KotKlienci.txt

$sed ':a;N;$!ba;s/ /,/g'Klienci.txt

Po uruchomieniu poleceń zostaną wygenerowane następujące dane wyjściowe.

Przykład 3: Zastąp przecinkiem używając H, h, d, x i y

Jeśli chcesz wymienić ) z przecinkiem w małym pliku, można użyć następującego polecenia `sed`. Tutaj, h służy do dołączenia ostatniej linii do tekstu trzymania, 1h służy do kopiowania każdej linii pliku do tekstu trzymania od pierwszej linii, $!d służy do usuwania wszystkich linii z wyjątkiem ostatniej linii, x służy do wymiany tekstu trzymającego i przestrzeni wzorca, oraz oraz służy do wymiany każdego w tekście gospodarstwa z przecinkiem.

$KotKlienci.txt

$sed 'H;1h;$!d;x;y/ /,/'Klienci.txt

Po uruchomieniu poleceń zostaną wygenerowane następujące dane wyjściowe.

Przykład 4: Zastąp przecinkiem, używając -n ,H, h, g i p

Polecenie `sed` może być użyte do zamiany z przecinkiem z -n opcja, która uniemożliwia automatyczne drukowanie. Podobnie jak w poprzednim przykładzie, h służy tutaj do dołączenia ostatniej linii do tekstu trzymającego, 1h służy do kopiowania każdej linii 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.

$KotKlienci.txt

$sed-n„H;1h; ${g; s / /,/g;p}'Klienci.txt

Poniższe dane wyjściowe zostaną wygenerowane po uruchomieniu powyższych poleceń.

Przykład 5: Zastąp przecinkiem używając H, x, p

H, x i p zostały wyjaśnione w poprzednich przykładach. Pierwsze wyrażenie wyszukiwania i zamiany zastąpi każde z nich z przecinkiem, a drugie wyrażenie wyszukiwania i zamiany zastąpi przecinek na początku wiersza spacją.

$KotKlienci.txt

$sed-n'H;${x;s/ /,/g;s/^,//;p;}'Klienci.txt

Poniższe dane wyjściowe zostaną wygenerowane po uruchomieniu powyższych poleceń.

Przykład 6: Zastąp przecinkiem, używając N i `cat`

Polecenie `cat` jest tutaj używane do wysłania zawartości pliku do polecenia `sed`, a n służy do przejścia do następnej linii.

$KotKlienci.txt

$KotKlienci.txt| sed 'N;s/ /,/'

Poniższe dane wyjściowe zostaną wygenerowane po uruchomieniu powyższych poleceń.

Wniosek

Może być konieczne zastąpienie przecinkiem, aby przenieść dane z jednego formatu pliku do drugiego. Ten rodzaj zamiany można również wykonać za pomocą innych poleceń systemu Linux. Wiele opcji poleceń, takich jak H, N, h i x, może być użytych z poleceniem `sed` do wykonania tego zadania. Ten samouczek omawia kilka sposobów użycia polecenia `sed` do zastąpienia przecinkiem.