最后添加分号但没有分号

时间:2012-08-30 17:43:29

标签: unix sed awk grep

我有一个文件,其中大多数(不是所有)行以分号结尾。我想在那些不以分号结尾的行的末尾添加分号。感谢

2 个答案:

答案 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