editor streamování (sed ) je důležitým nástrojem při práci s analýzou a transformací textu ve vašich systémech založených na nixu. Používá se pro hledání, filtrování, nahrazování textu a manipulaci s textem, jako je vkládání, mazání, nahrazování a vyhledávání v textových souborech.
[ Také by se vám mohlo líbit:Jak používat Sed k vyhledání a nahrazení řetězce v souborech ]
Ve většině distribucí Linuxu je příkaz sed předinstalovaný a můžete jej ověřit pomocí následujících příkazů, které zobrazí binární umístění příkazu a verzi.
$ which sed $ sed --version
Zde v tomto článku vám ukážu, jak odstranit řádky ze souboru pomocí příkazu sed s pomocí ukázkového souboru, který obsahuje 7 řádků. Tento soubor použiji pro demonstrační účely.
$ cat testfile.txt First line second line Third line Fourth line Fifth line Sixth line SIXTH LINE
Jak odstranit řádek ze souboru
Chcete-li odstranit řádek ze souboru, můžete použít níže uvedený příkaz. Musíte nahradit 'N'
s číslem řádku a 'd'
je smazat řádek.
$ sed 'Nd' testfile.txt
Pokud musíte vymazat čtvrtý řádek ze souboru, musíte nahradit N=4
.
$ sed '4d' testfile.txt

Jak odstranit první a poslední řádek ze souboru
První řádek ze souboru můžete odstranit pomocí stejné syntaxe, jaká je popsána v předchozím příkladu. Musíte zadat N=1
který odstraní první řádek.
$ sed '1d' testfile.txt
Chcete-li odstranit poslední řádek ze souboru pomocí níže uvedeného příkazu s ($)
znak, který označuje poslední řádek souboru.
$ sed '$d' testfile.txt

Jak odstranit rozsah řádků ze souboru
Ze souboru můžete odstranit řadu řádků. Řekněme, že chcete odstranit řádky od 3 do 5, můžete použít níže uvedenou syntaxi.
M
– číslo startovní čáryN
– Číslo koncového řádku
$ sed 'M,Nd' testfile.txt
Chcete-li skutečně odstranit, použijte k tomu následující příkaz.
$ sed '3,5d' testfile.txt

Můžete použít !
symbol pro zrušení operace odstranění. Tím se odstraní všechny řádky kromě daného rozsahu (3-5).
$ sed '3,5!d' testfile.txt

Jak odstranit prázdné řádky ze souboru
Chcete-li odstranit všechny prázdné řádky ze souboru, spusťte následující příkaz. Důležitým bodem, který je třeba poznamenat, je použití tohoto příkazu, prázdné řádky s mezerami nebudou odstraněny. Do testovacího souboru jsem přidal prázdné řádky a prázdné řádky s mezerami.
$ cat testfile.txt First line second line Third line Fourth line Fifth line Sixth line SIXTH LINE
$ sed '/^$/d' testfile.txt

Na obrázku výše můžete vidět, že prázdné řádky jsou smazány, ale řádky, které mají mezery, smazány nejsou. Chcete-li odstranit všechny řádky včetně mezer, můžete spustit následující příkaz.
$ sed '/^[[:space:]]*$/d' testfile.txt

[ Také by se vám mohlo líbit:Jak odstranit prázdné řádky v souborech pomocí Grep, Sed a Awk ]
Jak odstranit řádky začínající slovy v souboru
Chcete-li odstranit řádek, který začíná určitým slovem, spusťte následující příkaz s ^
symbol představuje začátek slova následovaný skutečným slovem.
$ sed '/^First/d' testfile.txt
Chcete-li odstranit řádek, který končí určitým slovem, spusťte následující příkaz. Slovo, které má být odstraněno, následované $
symbol vymaže řádky.
$ sed '/LINE$/d' testfile.txt

Jak provádět změny přímo v souboru
Chcete-li provést změny přímo v souboru pomocí sed musíte předat -i
příznak, který provede změny přímo v souboru.
$ sed -i '/^[[:space:]]*$/d' testfile.txt
Dostali jsme se na konec článku. sed Příkaz bude hrát hlavní roli, když pracujete na manipulaci se soubory. V kombinaci s dalšími nástroji Linuxu, jako je awk , grep s sed můžete dělat více věcí .