如何 trim 字符串中的尾随字符(不是空格)?

How to trim trailing characters (not whitespace) from a string?

你怎么能trim从字符串末尾开始输入 n 个字符?

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

1 022102201212021
2 201212210221021
3 021201122012210
4 201212101120002

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

1 0221022012
2 2012122102
3 0212011220
4 2012121011

希望能够 trim 从第 2 列的字符串末尾开始任意数量的字符。谢谢。

如果 trim 的列是最后一列:

awk '{print substr([=10=], 0, length-5)}' < INPUT > OUTPUT

如果到trim的栏目之后可能还有更多的栏目:

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

使用 sed:

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

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

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