반응형
awk 내에서 작은 따옴표를 이스케이프하는 방법
나는 다음을 원한다
awk 'BEGIN {FS=" ";} {printf "'%s' ", $1}'
그러나 이런 식으로 작은 따옴표를 이스케이프하면 작동하지 않습니다
awk 'BEGIN {FS=" ";} {printf "\'%s\' ", $1}'
어떻게하나요? 도와 줘서 고마워.
이것은 아마도 당신이 찾고있는 것입니다.
awk 'BEGIN {FS=" ";} {printf "'\''%s'\'' ", $1}'
즉, '\''
오프닝을 닫은 '
다음 '
이스케이프 하여 리터럴을 인쇄 하고 마지막으로 '
다시 엽니 다 .
작은 따옴표는 \x27
처럼
awk 'BEGIN {FS=" ";} {printf "\x27%s\x27 ", $1}'
또 다른 옵션은 작은 따옴표 를 awk 변수로 전달하는 것입니다 .
awk -v q=\' 'BEGIN {FS=" ";} {printf "%s%s%s ", q, $1, q}'
문자열 연결을 사용한 더 간단한 예 :
# Prints 'test me', *including* the single quotes.
$ awk -v q=\' '{print q $0 q }' <<<'test me'
'test me'
awk 'BEGIN {FS=" "} {printf "\047%s\047 ", $1}'
작은 스크립트의 경우 읽기 쉽게 만드는 선택적 방법은 다음과 같은 변수를 사용하는 것입니다.
awk -v fmt="'%s'\n" '{printf fmt, $1}'
출력에서 작은 따옴표 문자를 여러 번 생성해야하고 \ 047이 완전히 읽을 수 없게 만드는 경우에 편리함을 발견했습니다.
참고 URL : https://stackoverflow.com/questions/9899001/how-to-escape-a-single-quote-inside-awk
반응형
'Programing' 카테고리의 다른 글
목록을 정렬하는 방법 (0) | 2020.08.29 |
---|---|
새 창에서 링크를 열려면 어떻게합니까? (0) | 2020.08.29 |
`string.split is not a function` 오류의 원인은 무엇입니까? (0) | 2020.08.29 |
별도의 Pandas DataFrame을 서브 플롯으로 플로팅하려면 어떻게해야합니까? (0) | 2020.08.29 |
문자열을 DateTime으로 변환 (0) | 2020.08.29 |