Удалите пробелы в каждом начале строки файла, используя bash - PullRequest
14 голосов
/ 16 февраля 2012

Как я могу удалить пробелы в каждой строке файла, используя bash Например, file1.txt.До:

  gg g
 gg g
t  ttt

после:

gg g
gg g
t  ttt

Ответы [ 4 ]

27 голосов
/ 16 февраля 2012

sed -i 's/ //g' your_file сделает это, изменив файл на месте.

Чтобы удалить только пробелы в начале одной строки, используйте sed -i 's/^ *//' your_file

В первом выражении мы заменяем все пробелы ничем. Во втором мы заменим в начале ключевое слово ^ 1008 *.

15 голосов
/ 16 февраля 2012

tr (удалить все пробелы):

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

sed (удалить начальные пробелы)

$ sed -i 's/^ *//' input.txt
4 голосов
/ 16 февраля 2012

использование может использовать perl -i для замены на месте.

perl -p -e 's/^ *//' file 
1 голос
/ 14 августа 2015

Для удаления пробелов перед началом строки, если шаблон соответствует. Используйте следующую команду. Например, ваш foo.in имеет такой шаблон

      This is a test                                
                    Lolll
                       blaahhh
      This is a testtt

После выдачи следующей команды

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

foo.out будет

This is a test
             Lolll
                blaahhh
This is a testtt
...