如何从字符串中修剪尾随字符(不是空格)?

时间:2015-10-21 20:51:36

标签: regex string sed cut

你怎么能从字符串的末尾修剪n个字符?

第2栏中感兴趣的字符串:

1 022102201212021
2 201212210221021
3 021201122012210
4 201212101120002

删除了最后5个字符的修剪过的字符串:

1 0221022012
2 2012122102
3 0212011220
4 2012121011

希望能够修剪第2列中字符串末尾的任意数量的字符。谢谢。

2 个答案:

答案 0 :(得分:1)

如果要修剪的列是最后一列:

awk '{print substr($0, 0, length-5)}' < INPUT > OUTPUT

如果要修剪的列后面可能有更多列:

awk '{$2 = substr($2, 0, length($2)-5); print}' < INPUT > OUTPUT

答案 1 :(得分:1)

使用sed:

sed 's/.\{5\}$//' file
1 0221022012
2 2012122102
3 0212011220
4 2012121011

使用awk,您可以从每行中删除最后5个字符:

awk -F '.{5}$' '{print $1}' file
1 0221022012
2 2012122102
3 0212011220
4 2012121011