从文件中删除前导空格

Maa*_*arx 11 whitespace grep sed

我的shell在我的.login文件中调用了"fortune",向我提供了当天的一些消息.然而,一些命运以一个前导空白行开头,一些以两个开头,有些则根本没有任何前导空白行.这让我烦恼.

我坐下来用我自己的shell脚本来包装财富,它将从输入中删除所有前导空格,而不会破坏实际财富的任何格式,这可能故意有空格行.

它似乎不是一个简单的单行两分钟修复,当我阅读(芦苇)通过sed和grep的手册页时,我想我会在这里问我们的好顾客.

Tra*_*haw 19

使用与Dav相同的来源:

# delete all leading blank lines at top of file
sed '/./,$!d'
Run Code Online (Sandbox Code Playgroud)

资料来源:http://www.linuxhowtos.org/System/sedoneliner.htm? ref = news.rdf

此外,这就是为什么这有效:

逗号分隔了"范围"操作.sed可以接受范围定义的正则表达式,因此 /./将第一行与"anything"(.)匹配并$指定文件的结尾.因此,

  • /./,$ 匹配"第一个非空行到文件末尾".
  • ! 然后反转该选择,使其有效地"文件顶部的空白行".
  • d 删除那些行.

  • 写起来似乎更清楚:sed -n'/./,$p' (2认同)