我有一个文件,其中大多数(不是所有)行以分号结尾。我想在那些不以分号结尾的行的末尾添加分号。感谢
答案 0 :(得分:6)
从技术上讲,这将有效:
sed '/;$/!s/$/;/' input
但你可能关心尾随空格,所以:
sed '/; *$/!s/$/;/' input
如果您的sed支持\s
:
sed '/;\s*$/!s/$/;/' input
或者您可以使用:
sed '/;[[:space:]]*$/!s/$/;/' input
答案 1 :(得分:2)
使用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