bash 쉘 스크립트 루프 내의 awk 명령

bash 쉘 스크립트 루프 내의 awk 명령

bash일련의 텍스트 파일을 반복해야 하는 스크립트가 있습니다 . 자동으로 이 작업을 수행하는 루프를 작성했지만 for스크립트가 실행될 때 출력 파일을 얻지 못합니다.

온라인에서 찾은 다양한 한 줄 명령을 시도했지만 성공하지 못했습니다. 이러한 대용량 파일을 "연도"별로 분류하고 싶습니다. 어떤 제안이 있으십니까?

#!/usr/awk -f
        for i in *yyyymm.txt
        do
#       {FS = "," }
        awk -F "," 'BEGIN '$1 == 2002'END{ print $0 }' $i > "$i"-2002.dat
        gawk '$ 1==2002 { print $0 }' "$i" > "$i"-2002.dat
        awk '/2002/' "$i" > "$i"-2002.dat 

답변1

파일이 모두 쉼표로 구분되어 있고 첫 번째 필드( $1)에 연도가 포함되어 있다고 가정하면 필요한 것은 다음과 같습니다.

awk -F, '{print > FILENAME "-" $1 ".dat"}' *yyyymm.txt

관련 정보