문자열에 awk 사용 [닫기]

문자열에 awk 사용 [닫기]

터미널에서 첫 번째 문자가 'A'인 CSV 파일의 행을 나열하고 싶습니다. 이 작업을 수행하는 빠른 방법이 있나요?

답변1

다음과 같은 파일이 있다고 가정해 보겠습니다.

~$ cat f
1,AA,2
2,BB,2
3, AA, 1
C, BA, 1

간단히 grep을 사용할 수 있습니다.

~$ grep "^[^,], *A" f
1,AA,2
3, AA, 1

그러나 동일한 정규식으로 awk를 사용하는 것은 가능합니다.

~$ awk '/^[^,], *A/' f
1,AA,2
3, AA, 1

더 나은 접근 방식은 필드 구분 기호( )를 사용 -F','하고 두 번째 필드를 테스트하는 것입니다.

~$  awk -F',' '$2~/^ *A/' f
1,AA,2
3, AA, 1

그리고 sed를 사용하세요:

~$ sed -n '/^[^,], *A/p' f
1,AA,2
3, AA, 1

인용된 필드 안에 쉼표가 있는 경우 이러한 명령은 작동하지 않습니다. 예를 들면 다음과 같습니다.

"1,A",AA,A
'1,A',AA,A

이런 경우에는 다음과 같은 프로그램을 사용해야 합니다.CSV 견적,ocaml-csv, 또는 당신 자신의 ...

관련 정보