从行的开头删除所有空格

时间:2015-12-16 21:12:56

标签: bash shell unix awk

      1 147.31.124.135
      1 147.31.9.135
      1 147.32.123.135
      1 147.32.123.136
      1 147.32.124.135
      1 77.236.192.69
      1 86.49.86.108
      1 86.49.86.109

您好。我有这种格式的文件,每行开头有很多空格,我想从开头删除这些空格,并使用awk或sed打印所有字段。

结果:

1 147.31.124.135
1 147.32.123.135
1 147.32.123.136
1 147.32.124.135
1 77.236.192.69
1 86.49.86.108
1 86.49.86.109

4 个答案:

答案 0 :(得分:4)

您可以使用此sed命令删除前导空格(空格或制表符)

sed 's/^[ \t]*//' file 

使用sed -i就地修改文件。

答案 1 :(得分:2)

sed命令

   sed 's/^ *//'

应该有用。

说明:^表示行的开头,*表示零或多个空格。这些都没有被替换。

答案 2 :(得分:2)

您甚至可以使用POSIX字符类[:space:]来处理所有空格(\t\r\n\v等等:

sed 's/^[[:space:]]*//g' file

答案 3 :(得分:1)

使用awk命令,

bash-3.2$ cat input
      1 147.31.124.135
      1 147.31.9.135
      1 147.32.123.135
      1 147.32.123.136
      1 147.32.124.135
      1 77.236.192.69
      1 86.49.86.108
      1 86.49.86.109
bash-3.2$ awk 'sub(/^ */, "")' input
1 147.31.124.135
1 147.31.9.135
1 147.32.123.135
1 147.32.123.136
1 147.32.124.135
1 77.236.192.69
1 86.49.86.108
1 86.49.86.109