删除字符串awk末尾的特定模式

时间:2016-09-19 14:03:33

标签: regex awk gsub

我有如下的字符串,

Abc \ \          <--- This is With space at the end
Abc \ \          <--- This is Without space at the end
Abc\ \
Abc \\
Abc\\
Abc\ 
Abc \ 

所有上述字符串的预期结果

Abc

简而言之,如果在字符串的末尾有任何空间和组合的组合模式。 \然后我想删除它。 我想用awk做这个..

请帮忙...

2 个答案:

答案 0 :(得分:3)

要对每一行应用单个替换,请使用sed:

sed 's/[ \]*$//g' file

匹配每行末尾的空格和反斜杠的所有组合,并替换为空。

答案 1 :(得分:1)

使用awk,您可以执行awk '{gsub(/[ \\]+$/,"")}1' file

之类的操作

测试:

$ cat -A file
Abc \ \ $
Abc \ \$
Abc\ \$
Abc \\$
Abc\\$
Abc\ $
Abc \ $

$ awk '{gsub(/[ \\]+$/,"")}1' file
Abc
Abc
Abc
Abc
Abc
Abc
Abc

正则表达式匹配行尾的连续空格和反斜杠的序列。