2
我想在awk中連接兩個字符串。其中一人似乎包含了「\ r」:如何刪除awk中的轉義字符?
stringA = "Hello\r"
stringB = "Hi"
print stringA stringB
結果
Hillo
我能做些什麼,以刪除「\ r」如果我不能改變stringA的來源是什麼?
謝謝:)
我想在awk中連接兩個字符串。其中一人似乎包含了「\ r」:如何刪除awk中的轉義字符?
stringA = "Hello\r"
stringB = "Hi"
print stringA stringB
結果
Hillo
我能做些什麼,以刪除「\ r」如果我不能改變stringA的來源是什麼?
謝謝:)
考慮:
$ awk 'BEGIN {s1="Hello\r"; s2="Hi"; print s1 s2}'
Hillo
只需更換回車\r
與gsub()
:
$ awk 'BEGIN {s1="Hello\r"; s2="Hi"; gsub(/\r$/,"",s1); print s1 s2}'
HelloHi
也就是說,gsub(/\r$/,"",s1)
將查找\r
在字符串的結尾s1
並用""
代替它,也就是說,它它。
如果出現多個回車符,只需排除$
,這樣它就不會匹配行尾的符號。
Ed Morton在評論中建議,可能只有一個回車符會出現在一個字符串中,這很合理。如果是這種情況,只需使用sub()
代替:sub(/\r$/,"",s1)
。
謝謝你,幫了很多:) –
狂猜 - 字符串A正在通過讀取文件的內容來填充。如果是這樣,只需在運行awk或運行gawk之前在該輸入文件上運行dos2unix或類似命令,然後設置RS ='\ r?\ n''或運行'sub(/ \ r /,「」) '在每個輸入行或... –