![문자열에 awk 사용 [닫기]](https://linux55.com/image/34767/%EB%AC%B8%EC%9E%90%EC%97%B4%EC%97%90%20awk%20%EC%82%AC%EC%9A%A9%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
터미널에서 첫 번째 문자가 '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, 또는 당신 자신의 ...