[英]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.