有
08-01-12|07-30-13|08-09-32|12-43-56|
要
08-01-12|07-30-13|08-09-32|12-43-56
我想删除最后一个|
。
答案 0 :(得分:4)
快速而肮脏
sed 's/.$//' YourFile
有点安全
sed 's/[|]$//' YourFile
允许空间
sed 's/[|][[:space:]]*$//' YourFile
答案 1 :(得分:1)
由于您使用awk
标记,因此请在此处找到两种方法,每种方法用于解释您的问题:
如果您想删除|
,如果它是最后一个字符:
awk '{sub(/\|$/,"")}1' file
等同于sed s'/|$//' file
,只有逃避|
,因为它在正则表达式内容(“或”)中具有特殊含义。
如果你想删除最后一个字符,无论它是什么:
awk '{sub(/.$/,"")}1' file
相当于sed s'/.$//' file
,因为.
匹配任何字符。
$ cat a
08-01-12|07-30-13|08-09-32|12-43-56|
rrr.
$ awk '{sub(/\|$/,"")}1' a
08-01-12|07-30-13|08-09-32|12-43-56
rrr. # . is kept
$ awk '{sub(/.$/,"")}1' a
08-01-12|07-30-13|08-09-32|12-43-56
rrr # . is also removed