用sed替换行中的最后一个字符

时间:2011-09-27 14:19:57

标签: sed

我正在尝试使用相同的字符和引号'替换行中的最后一个字符

这是sed代码

 sed "s/\([A-Za-z]\)$/\1'/g" file1.txt > file2.txt

但不起作用。错误在哪里?

4 个答案:

答案 0 :(得分:7)

尝试:

sed "s/\([a-zA-Z]\)\s*$/\1\'/" file

这将替换行中的最后一个字符,后跟无或多个空格。

HTH Chris

答案 1 :(得分:4)

用自己替换一个字符似乎毫无意义,所以试试这个:对于以字母结尾的行,在末尾添加一个引号:

sed "/[a-zA-Z]$/s/$/'/"

答案 2 :(得分:2)

这就是你要求的:

sed "s/\(.\)$/\1'/" file1.txt > file2.txt

答案 3 :(得分:0)

您的行只匹配包含单个字符的行。请注意,s操作仅在匹配时生效,而不是仅在该行的子集与正则表达式匹配时生效。