awk에서 두 문자열을 연결하려고합니다. 그 중 하나는 '\ r에'포함 할 것 같다awk에서 이스케이프 문자를 제거하는 방법은 무엇입니까?
Hillo
에서
stringA = "Hello\r"
stringB = "Hi"
print stringA stringB
결과를 내가 stringA의 소스를 변경할 수없는 경우 '\ r에'를 제거하기 위해 무엇을 할 수 있는가?
감사합니다 :)
awk에서 두 문자열을 연결하려고합니다. 그 중 하나는 '\ r에'포함 할 것 같다awk에서 이스케이프 문자를 제거하는 방법은 무엇입니까?
Hillo
에서
stringA = "Hello\r"
stringB = "Hi"
print stringA stringB
결과를 내가 stringA의 소스를 변경할 수없는 경우 '\ r에'를 제거하기 위해 무엇을 할 수 있는가?
감사합니다 :)
을 감안할 때 :
$ 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
이며 ""
으로 바꿉니다. 즉, remo 그것을 ves.
캐리지 리턴이 여러 개 나타나는 경우 $
을 제거하면 줄 끝에있는 것과 일치하지 않습니다.
에드 모튼 (Ed Morton)은 코멘트에서 하나의 캐리지 리턴이 문자열에 표시 될 것이라고 제안합니다. 이는 상당히 합리적입니다. 이 경우 sub(/\r$/,"",s1)
대신 sub()
을 사용하면됩니다.
감사합니다, 많이 도움이 :) –
야생 추측 - 문자열 A는 파일의 내용을 읽음으로써 채워집니다. 그렇다면, awk를 실행하기 전에 입력 파일에서 dos2unix 또는 비슷한 것을 실행하거나 gawk를 사용하고 있다면'RS = '\ r? \ n "'을 설정하거나'sub (/ \ r /," ") '각 입력 줄에 또는 .... –