如何删除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
把回车return\r
换成gsub()
就可以了:
$ awk 'BEGIN {s1="Hello\r"; s2="Hi"; gsub(/\r$/,"",s1); print s1 s2}'
HelloHi
即gsub(/\r$/,"",s1)
寻找字符串s1
末尾的\r
并用""
替换,即删除。
如果出现多个回车return,只需去掉$
,这样它就不会只匹配行尾的
Ed Morton 在评论中建议可能只有一个回车 return 会出现在一个字符串中,这是很合理的。如果是这种情况,只需使用 sub()
代替:sub(/\r$/,"",s1)
.
我正在尝试在 awk 中连接两个字符串。其中一个似乎包含 '\r':
stringA = "Hello\r"
stringB = "Hi"
print stringA stringB
结果
Hillo
如果我无法更改 stringA 的来源,我该如何删除'\r'?
谢谢:)
给定:
$ awk 'BEGIN {s1="Hello\r"; s2="Hi"; print s1 s2}'
Hillo
把回车return\r
换成gsub()
就可以了:
$ awk 'BEGIN {s1="Hello\r"; s2="Hi"; gsub(/\r$/,"",s1); print s1 s2}'
HelloHi
即gsub(/\r$/,"",s1)
寻找字符串s1
末尾的\r
并用""
替换,即删除。
如果出现多个回车return,只需去掉$
,这样它就不会只匹配行尾的
Ed Morton 在评论中建议可能只有一个回车 return 会出现在一个字符串中,这是很合理的。如果是这种情况,只需使用 sub()
代替:sub(/\r$/,"",s1)
.