我有一个文件包含带有前导和尾随空格的字符,我想简单地删除该字符 .
到目前为止,以下工作用于引导空格,而冒号表示要删除的字符:
grep -v '^\s*;$' "input_file" > "output_file".tmp
mv "output_file".tmp "input_file"
现在我想在有尾随空格时删除该字符 .
假设我有一个这样的文件:
Some Text
;
;
Some Text again
;
Some Text once again
我希望它是这样的:
Some Text
Some Text again
Some Text once again
1 回答
你可以用
sed
以一种微不足道的方式做到这一点,例如:Explanation
使用
sed '/regex/d'
的sed
常规删除形式删除匹配正则表达式的文件中的行 . 以上,正则表达式是:^
锚定正则表达式开头的行;\s*
匹配零或多个空格;;
匹配分号;\s*$
将零或多个空格与行尾匹配;总之,正则表达式将删除文件中仅包含分号和空格的任何行 .
要修改文件"in-place",添加
-i
选项并在file.bak
中创建原始文件的备份,请使用该选项的-i.bak
形式 .