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