파일 하나 하나에 쉼표로 구분 된 값 목록이 있습니다.bash에서 CSV 파일을 변환하는 방법?
1 a 1 b 1 c 1 d 1 e 2 x 2 y 2 z
어떻게 shell (bash)
스크립트 그것을 할 : 예를 들어, 다음과 같이 이제
1, a, b, c, d, e 2, x, y, z
나는 bash
에 변환 하시겠습니까?
파일 하나 하나에 쉼표로 구분 된 값 목록이 있습니다.bash에서 CSV 파일을 변환하는 방법?
1 a 1 b 1 c 1 d 1 e 2 x 2 y 2 z
어떻게 shell (bash)
스크립트 그것을 할 : 예를 들어, 다음과 같이 이제
1, a, b, c, d, e 2, x, y, z
나는 bash
에 변환 하시겠습니까?
awk -F, '{for(i=2;i<=NF;i++)print $1,$i}' temp
아래 테스트 :
> cat temp
1, a, b, c, d, e
2, x, y, z
> awk -F, '{for(i=2;i<=NF;i++)print $1,$i}' temp
1 a
1 b
1 c
1 d
1 e
2 x
2 y
2 z
쉘 스크립트가 필요하다는 것을 알고 있지만 bash 일 필요가 있습니까? 예 : 일반적으로 더 높은 수준의 스크립팅 언어와 CSV 라이브러리를 사용합니다. 예 : Perl
및 Text::CSV
당신은 토큰에 라인을 분할하고 배열에 넣어 수 있습니다. 배열의 첫 번째 요소는 숫자를 가지며, 귀하의 경우 1 또는 2 등입니다. 이런 식으로 뭔가를 할 수있다 :
이while read line
do
arrIN=(${line//,/ })
## make a loop and echo them
## arrIN[0] will have the initial number
done < $file
# $file is the input file you are reading
나는 (심지어 자바와 같은 비 스크립트 언어에 대한) 모든 CSV 라이브러리를 생각하지 않는 상자에서이 사용 사례를 해결할 수있는,이의 이상한 방법으로 CSV 데이터를 처리하고 있으며 그 데이터는 실제 CSV가 아닙니다. 부수적으로, 당신의 대답에서 Perl은 일종의 "쉘 스크립트"라는 것을 이해할 수 있습니다. –
왜 Downvoted? 더 높은 수준의 스크립팅 언어와 CSV 지향 라이브러리를 제안하는 것이 비합리적인 것처럼 보이지 않습니다. –
위의 내용은 "실제 CSV조차도 아닙니다"? –