작은 따옴표의 awk 구분 기호를 사용하는 방법은 무엇입니까?


11

awk를 사용하여 다음과 같이 SQL 출력에서 ​​정보를 가져오고 싶습니다.

(count (고유 한 서버 클래스) = '2')

이 예제에서는 2 인 숫자를 추출해야합니다.

다음과 같은 작업을하고 싶지만 작은 따옴표를 이스케이프 처리하는 방법을 알 수 없습니다.

<sqlCommand> | awk 'BEGIN{FS="'"}{print $2}'

awk에서 필드 구분 기호로 리터럴 작은 따옴표를 어떻게 얻을 수 있습니까?

답변:


14

작은 따옴표로 묶은 문자열에 작은 따옴표를 삽입하려면 현재 문자열을 끝내 "'"거나 문자열을 쓰거나 \'다시 시작하십시오.

귀하의 예에서,

awk 'BEGIN{FS="'"'"'"}{print $2}'

또는

awk 'BEGIN{FS="'\''"}{print $2}'

그러나 -F스위치를 사용하여 필드 구분 기호를 지정하면보다 읽기 쉬운 코드가 생성됩니다.

awk -F\' '{print $2}'

스타일을에서 -F"'"로 업데이트 한 이유는 무엇 -F\'입니까?
WilliamKF

1
정당한 이유가 없습니다. 둘 다 작동하지만 첫 번째는 내 취향에 비해 너무 많은 인용문이 있습니다.
Dennis
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.