如何从所有行中删除最后一个字符,但仅限于它是某个特定字符

时间:2014-03-24 10:40:01

标签: linux string sed

我有这种形式的数据

Kure|Hiroshima
Kure|Hiroshima
Kure|Hiroshima
NO MATCHING
Aachen|
Darmstadt
Mulheim
Aachen|

我想删除最后一个字符,如果它是一个管道(|)。

期望的输出

Kure|Hiroshima
Kure|Hiroshima
Kure|Hiroshima
NO MATCHING
Aachen
Darmstadt
Mulheim
Aachen

提前致谢

2 个答案:

答案 0 :(得分:1)

您可以使用sed

$ sed 's/|$//' file
Kure|Hiroshima
Kure|Hiroshima
Kure|Hiroshima
NO MATCHING
Aachen
Darmstadt
Mulheim
Aachen

它会查找|$(表示“行尾”)并删除它。

请注意,如果您想进行就地编辑,可以使用sed -i

答案 1 :(得分:0)

awk版本:

awk '{sub(/\|$/,"")}1' file