繁体   English   中英

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

[英]How to remove escape character in awk?

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

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

结果是

Hillo

如果无法更改stringA的来源,该怎么办才能删除'\\ r'?

谢谢 :)

鉴于:

$ 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)在字符串s1的末尾查找\\r并将其替换为"" ,即将其删除。

如果出现多个回车符,则删除$ ,使其不与行尾的$匹配。

埃德·莫顿(Ed Morton)在评论中建议,字符串中可能只会出现一个回车符,这是非常合理的。 如果是这种情况,只需使用sub()sub(/\\r$/,"",s1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM