주어진 입력 텍스트의 세 번째, 첫 번째, 다섯 번째 쉼표 이후의 순서로 텍스트를 표시하고 싶습니다.
작업을 수행했지만 cut -d ',' -f 3,1,5
원하는 순서를 지키지 않았습니다. 대신 텍스트를 오름차순(1, 3, 5)으로 표시합니다.
답변1
유틸리티 cut
는 항상 입력과 동일한 순서로 필드를 출력합니다. 필드를 재정렬할 수 없습니다.
awk
대신 사용하십시오 cut
:
awk -F , 'BEGIN { OFS=FS } { print $3, $1, $5 }'
그러면 세 번째, 첫 번째, 다섯 번째 쉼표로 구분된 필드가 순서대로 출력됩니다. 출력과 입력에 동일한 필드 구분 기호를 사용합니다.
예:
$ echo "a,b,c,d,e,f" | awk -F , 'BEGIN { OFS=FS } { print $3, $1, $5 }'
c,a,e
CSV로 인코딩된 필드를 포함할 수 있는 실제 CSV 파일로 작업하는 경우 csvcut
다음을 사용하세요.csvkit:
csvcut -c 5,1,3 file.csv
csvcut
예를 들어 열 이름을 사용할 수도 있습니다 .
csvcut -c name,age,address file.csv
당신은 또한 볼 수 있습니다 csvcut --help
.