GNU/Linux >> Znalost Linux >  >> Linux

Odstraňte mezery na každém začátku řádku souboru pomocí bash

use může použít perl -i pro nahrazení na místě.

perl -p -e 's/^ *//' file 

Chcete-li odstranit bílé mezery před začátkem řádku, pokud se vzor shoduje. Použijte následující příkaz. Například váš foo.in má vzor jako tento

      This is a test                                
                    Lolll
                       blaahhh
      This is a testtt

Po zadání následujícího příkazu

sed -e '/This/s/ *//' < foo.in > foo.out

Foo.out bude

This is a test
             Lolll
                blaahhh
This is a testtt

sed -i 's/ //g' your_file udělá to a upraví soubor na místě.

Chcete-li odstranit pouze mezery na začátku jednoho řádku, použijte sed -i 's/^ *//' your_file

V prvním výrazu nahradíme všechny mezery ničím. Ve druhém nahradíme na začátku pomocí ^ klíčové slovo


tr (smazat všechny mezery):

$ tr -d ' ' <input.txt >output.txt
$ mv output.txt input.txt

sed (smažte úvodní mezery)

$ sed -i 's/^ *//' input.txt

Linux
  1. Použití odkazu na proměnnou bashového řetězce v Sed?

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

  3. Jak mohu přidat řetězec na začátek každého souboru ve složce v bash?

  1. Jak číst předposlední řádek v souboru pomocí Bash?

  2. Přesměrovat veškerý výstup do souboru pomocí Bash na Linuxu?

  3. Jak vložím text do 1. řádku souboru pomocí sed?

  1. Jak v Bash přidám řetězec za každý řádek v souboru?

  2. Bash:přidejte řetězec na konec souboru bez zalomení řádku

  3. Jak spočítat počet karet v každém řádku pomocí skriptu shell?