GNU/Linux >> Znalost Linux >  >> Linux

Jak odstranit řádky ze souboru pomocí příkazu Sed

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í čáry
  • N – Čí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í .


Linux
  1. Používání Disku Google z příkazového řádku systému Linux

  2. Efektivně odstranit prvních pár řádků z textového souboru?

  3. Jak odstranit více náhodných řádků z textového souboru pomocí Sed?

  1. Jak zobrazit konkrétní řádky souboru v příkazovém řádku Linuxu

  2. Odstranění konkrétních řádků ze souboru v příkazovém řádku Linuxu

  3. Jak odstranit duplicitní slova ze souboru prostého textu pomocí příkazu linux

  1. Jak použít sed k odstranění pouze dvojitých prázdných řádků?

  2. Jak použít sed k odstranění posledních n řádků souboru

  3. Odstraňte liché nebo sudé řádky z textového souboru