Libovolný znak nebo řetězec lze nahradit pomocí příkazu 'sed'. Někdy musíme znak nového řádku (\ n) v souboru nahradit čárkou. V tomto článku používáme příkaz 'sed' k nahrazení \ n čárkou.
Použití 'sed' k nahrazení \ n čárkou
Při nahrazování \ n čárkou může dojít k mnoha problémům. Ve výchozím nastavení končí každý řádek při vytváření souboru znakem \ n. Příkaz 'sed' lze snadno rozdělit na \ n a nahradit nový řádek jakýmkoli znakem. Místo \ n lze použít jiný oddělovač, ale pouze při použití GNU sed. Pokud na posledním řádku souboru chybí \ n, může se GNU sed vyhnout tisku \ n. Dále se \ n obvykle přidává ke každému následnému výstupu 'sed'.
Vytvořte soubor
V tomto článku vám ukážeme, jak použít příkaz 'sed' k nahrazení \ n čárkou. Chcete-li pokračovat v tomto kurzu, vytvořte textový soubor s názvem Klienti.txt s následujícími tabulkovými informacemi o klientovi.
ID | název | E-mailem | Telefon |
---|---|---|---|
c01 | Md. Rakib | [chráněno e-mailem] | 01856233238 |
c02 | Meher Afroze | [chráněno e-mailem] | 01733536342 |
c03 | Fakrul Ahsan | [chráněno e-mailem] | 01934737248 |
c04 | Helal Uddin | [chráněno e-mailem] | 01534895898 |
c05 | Nusrat Jahan | [chráněno e-mailem] | 01866345254 |
Příklad 1: Nahraďte \ n čárkou pomocí -z
Možnost -z se používá k převodu \ n na znak null (\ 0). Obsah souboru je považován za jeden řádek, pokud neobsahuje žádné znaky null. Příkaz 'sed' převede nový řádek na znak null a nahradí každý \ n čárkou pomocí prvního vzoru hledání a nahrazení. Zde se 'g' používá ke globálnímu vyhledávání \ n. Při druhém vzoru hledání a nahrazení bude poslední čárka nahrazena \ n.
$ kočičí klienti.txtKlienti $ sed -z 's / \ n /, / g; s /, $ / \ n /'.txt
Následující výstup bude vytvořen po spuštění příkazů.
Příklad 2: Nahraďte \ n čárkou pomocí a, b, $! a N
Příkaz 'sed' lze použít k nahrazení \ n čárkou pomocí a, b, N a $!. Tady, A slouží k připojení úkolů, b se používá k větvení obsahu, N se používá k přechodu na další řádek a $! slouží k zabránění uplatnění úlohy nahrazení na poslední řádek. Příkaz nahradí každý \ n s čárkou kromě posledního řádku.
$ kočičí klienti.txt$ sed ': a; N; $!ba; s / \ n /, / g 'Klienti.txt
Následující výstup bude vytvořen po spuštění příkazů.
Příklad 3: Nahraďte \ n čárkou pomocí H, h, d, x a y
Pokud chcete vyměnit \ n) s čárkou v malém souboru, lze použít následující příkaz 'sed'. Tady, H slouží k připojení posledního řádku k zadržovacímu textu, 1 h se používá ke zkopírování každého řádku souboru do zadržovacího textu z prvního řádku, $!d se používá k odstranění všech řádků kromě posledního, X se používá k výměně pozdrženého textu a prostoru vzoru a y se používá k jejich nahrazení \ n v přidržovacím textu čárkou.
$ kočičí klienti.txt$ sed 'H; 1 h; $!d; x; y / \ n /, / 'Klienti.txt
Následující výstup bude vytvořen po spuštění příkazů.
Příklad 4: Nahraďte \ n čárkou pomocí -n, H, h, ga ap
K nahrazení lze použít příkaz 'sed' \ n s čárkou s -n možnost, která zabrání automatickému tisku. Stejně jako v předchozím příkladu, H zde se používá k připojení posledního řádku k zadržovacímu textu, 1 hod se používá ke kopírování každého řádku souboru do zadržovacího textu, $ odkazuje na poslední řádek souboru, G se používá ke kopírování z pozdrženého textu a p se používá k tisku.
$ kočičí klienti.txt$ sed -n "H; 1h; \ $ g; s / \ n /, / g; p" klienti.txt
Následující výstup bude vytvořen po spuštění výše uvedených příkazů.
Příklad 5: Nahraďte \ n čárkou pomocí H, x, p
H, x a p byly vysvětleny v předchozích příkladech. První výraz hledání a nahrazení nahradí každý \ n čárkou a druhý výraz hledání a nahrazení nahradí čárku na začátku řádku mezerou.
$ kočičí klienti.txt$ sed -n 'H; $ x; s / \ n /, / g; s / ^, //; p;' klienti.txt
Následující výstup bude vytvořen po spuštění výše uvedených příkazů.
Příklad 6: Nahraďte \ n čárkou pomocí N a 'cat'
Příkaz „kočka“ se zde používá k odeslání obsahu souboru do příkazu „sed“ a N se používá k přechodu na další řádek.
$ kočičí klienti.txt$ kočičí klienti.txt | sed 'N; s / \ n /, /'
Následující výstup bude vytvořen po spuštění výše uvedených příkazů.
Závěr
K přenosu dat z jednoho formátu do druhého může být nutné nahradit \ n čárkou. Tento typ náhrady lze provést také pomocí jiných příkazů systému Linux. K provedení tohoto úkolu lze pomocí příkazu 'sed' použít mnoho možností příkazů, například H, N, h a x. Tento výukový program popisuje několik způsobů, jak pomocí příkazu 'sed' nahradit \ n čárkou.