Delete whitespace in each begin of line of file, using bash

后端 未结 5 1125
迷失自我
迷失自我 2020-12-29 08:22

How i can delete whitespace in each line of file, using bash For instance, file1.txt. Before:

  gg g
 gg g
t  ttt

after:

gg         


        
相关标签:
5条回答
  • 2020-12-29 08:58

    use can use perl -i for in place replacement.

    perl -p -e 's/^ *//' file 
    
    0 讨论(0)
  • 2020-12-29 08:59

    sed -i 's/ //g' your_file will do it, modifying the file inplace.

    To delete only the whitespaces at the beginning of one single line, use sed -i 's/^ *//' your_file

    In the first expression, we replace all spaces with nothing. In the second one, we replace at the beginning using the ^ keyword

    0 讨论(0)
  • 2020-12-29 09:07

    tr(delete all whitespaces):

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

    sed(delete leading whitespaces)

    $ sed -i 's/^ *//' input.txt
    
    0 讨论(0)
  • 2020-12-29 09:07

    To delete the white spaces before start of the line if the pattern matches. Use the following command. For example your foo.in has pattern like this

          This is a test                                
                        Lolll
                           blaahhh
          This is a testtt
    

    After issuing following command

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

    The foo.out will be

    This is a test
                 Lolll
                    blaahhh
    This is a testtt
    
    0 讨论(0)
  • 2020-12-29 09:08

    "Whitespace" can include both spaces AND tabs. The solutions presented to date will only match and operate successfully on spaces; they will fail if the whitespace takes the form of a tab.

    The below has been tested on the OP's specimen data set with both spaces AND tabs, matching successfully & operating on both:

    sed 's/^[[:blank:]]*//g' yourFile
    

    After testing, supply the -i switch to sed to make the changes persistent-

    0 讨论(0)
提交回复
热议问题