다음 값을 포함하는 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
명령을 사용하여 첫 번째 열을 개별적으로 추출하여 파일 이름을 얻고 루프 while
와 touch
명령을 사용하여 첫 번째 열을 기반으로 새 파일을 만들었습니다.
하지만 첫 번째 열은 항상 고유하다고 생각합니다. 고유하지 않은 경우 다른 접근 방식을 취해야 할 수도 있습니다. 이렇게 하려면 질문을 편집하고 사용할 파일 이름 규칙을 언급해야 합니다.
답변2
원스톱 상점 awk
(열 1이 고유하다고 가정)
awk -F "," '$2 >= 577 { print $0 > $1 }' my.csv