각 줄의 값을 기반으로 다른 파일에서 파일을 만듭니다.

각 줄의 값을 기반으로 다른 파일에서 파일을 만듭니다.

다음 값을 포함하는 csv 파일을 생성합니다.

yp1234,577,1,3
yp5678,570,3,5
yp9012,132,8,9

데이터를 추출하고 두 번째 열을 기반으로 파일을 만들어야 합니다. 해당 값이 577보다 크면 전체 줄을 추출하여 별도의 파일에 배치해야 합니다.

내 말은 두 번째 열의 행 수가 577보다 큰 파일이 필요하다는 것입니다.

답변1

이는 다음 명령을 사용하여 수행할 수 있습니다.

awk -F "," ' $2 >= 577 ' filename.csv > create_files

위의 전체 내용을 새 파일에 넣을 수 있으며(새 파일 이름을 로 지정함 create_files) 이제 해당 파일에서 새 파일을 만들 수 있습니다.

위 명령을 실행한 후 파일 이름 규칙을 언급하지 않았으므로 첫 번째 열이 파일 이름일 수 있다고 가정합니다. 따라서 다음 접근 방식을 따를 수 있습니다.

awk -F "," '{ print $1 }' create_files | while read a; do touch $a; done

해당 awk명령을 사용하여 첫 번째 열을 개별적으로 추출하여 파일 이름을 얻고 루프 whiletouch명령을 사용하여 첫 번째 열을 기반으로 새 파일을 만들었습니다.

하지만 첫 번째 열은 항상 고유하다고 생각합니다. 고유하지 않은 경우 다른 접근 방식을 취해야 할 수도 있습니다. 이렇게 하려면 질문을 편집하고 사용할 파일 이름 규칙을 언급해야 합니다.

답변2

원스톱 상점 awk(열 1이 고유하다고 가정)

awk -F "," '$2 >= 577 { print $0 > $1 }' my.csv

관련 정보