如何在awk中删除转义字符?

时间:2017-01-18 12:25:51

标签: string awk replace concat

我试图在awk中连接两个字符串。其中一个似乎包含' \ r':

stringA = "Hello\r"
stringB = "Hi"
print stringA stringB

结果

Hillo

我该怎么做才能删除' \ r'如果我不能改变stringA的来源?

谢谢:)

1 个答案:

答案 0 :(得分:0)

假设:

OneToOne

只需将回车$ awk 'BEGIN {s1="Hello\r"; s2="Hi"; print s1 s2}' Hillo 替换为gsub()

\r

也就是说,$ awk 'BEGIN {s1="Hello\r"; s2="Hi"; gsub(/\r$/,"",s1); print s1 s2}' HelloHi 会在字符串gsub(/\r$/,"",s1)的末尾查找\r,并将其替换为s1,也就是说,将其删除。

如果出现多个回车符,只需删除"",这样它就不会与该行末尾的那个匹配。

Ed Morton在评论中建议可能只有一个回车符将出现在一个字符串中,这是非常合理的。如果是这种情况,请改为使用$sub()