簡體   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