我有文件,其中大多数(不是全部)行以分号结尾。我想只在那些不以分号结尾的行的末尾添加分号。谢谢
问问题
5059 次
2 回答
7
从技术上讲,这将起作用:
sed '/;$/!s/$/;/' input
但是您可能关心尾随空格,所以:
sed '/; *$/!s/$/;/' input
如果您的 sed 支持\s
:
sed '/;\s*$/!s/$/;/' input
或者你可以使用:
sed '/;[[:space:]]*$/!s/$/;/' input
于 2012-08-30T17:48:27.490 回答
4
使用 sed:
sed -i '/[^;] *$/s/$/;/' input_file
意思是:
-i overwrite the original file with new contents
/[^;] *$/ find lines that do not contain a `;` at the end (after
ignoring trailing spaces)
s/$/;/ add a semicolon at the end
于 2012-08-30T17:49:03.937 回答