awk를 사용하여 4 out 1 파일 생성

awk를 사용하여 4 out 1 파일 생성

나는 1개의 숫자 열(길이=14)을 포함하는 텍스트 파일인 큰 목록을 가지고 있습니다. 번호에는 00001-00004라는 4개의 서로 다른 접두사가 있습니다. 1개의 목록을 4개의 diffrend 파일로 분할하려면 어떻게 해야 합니까? 파일 1개에는 접두사가 1개인 숫자 목록이 포함되어야 합니다.

답변1

다음 awk명령을 사용하십시오.

awk '/^00001/{print >"file1"} \
     /^00002/{print >"file2"} \
     /^00003/{print >"file3"} \
     /^00004/{print >"file4"}' inputfile

줄에 어떤 접두사가 있는지 확인하고 전체 줄을 에 인쇄 file1합니다 file4. inputfile큰 목록이 포함된 파일입니다.

답변2

(G)awk 및 일치 사용

awk 'match($0,/^0000([1-4])/,a){print > "file"a[1]}' file

POSIX awk

awk '/0000[1-4]/{print > "file"substr($0,5,1)}' file

또는 둘 다 접두어가 있는 경우

awk '{print > "file"substr($0,5,1)}' file

답변3

무료로 사용하실 수 있습니다bash

while IFS= read -r num
do
  echo "$num" >> "file${num:4:1}"
done < number_list.file

관련 정보