sed를 사용하여 CSV 파일의 각 줄에서 두 번째 쉼표를 제거하는 방법은 무엇입니까?

sed를 사용하여 CSV 파일의 각 줄에서 두 번째 쉼표를 제거하는 방법은 무엇입니까?

디렉토리에 많은 csv 파일이 있고 각 줄에서 두 번째 쉼표를 제거하고 싶습니다. 예:

입력하다:

53,900,1001,-45.4247,9.87187,541.65
75,900,0102,37.0896,4.24087,558.35
75,900,1101,37.3096,4.25814,561.65
46,901,0003,-51.3833,-20.2645,578.35
3,901,0003,-57.302,-23.0063,578.35

원하는 출력:

53,9001001,-45.4247,9.87187,541.65
75,9000102,37.0896,4.24087,558.35
75,9001101,37.3096,4.25814,561.65
46,9010003,-51.3833,-20.2645,578.35
3,9010003,-57.302,-23.0063,578.35

sed를 사용하여 이를 달성할 수 있습니까? 미리 감사드립니다!

답변1

이 방법:

sed 's/,//2' file.csv

이 옵션은 문서화되어 있습니다.여기명령으로 플래그를 사용할 수 있습니다 s.

숫자

정규식의 숫자 항목만 바꿉니다.

답변2

awk -F "," 'BEGIN{OFS=","}{$2=$2$3;$3="";gsub(/,,/,",",$0);print}' file.txt

산출

53,9001001,-45.4247,9.87187,541.65
75,9000102,37.0896,4.24087,558.35
75,9001101,37.3096,4.25814,561.65
46,9010003,-51.3833,-20.2645,578.35
3,9010003,-57.302,-23.0063,578.35

답변3

GNU awk cam의 gensub 기능은 다음 상황에서도 사용할 수 있습니다:

$ gawk '{$0=gensub(/,/,"",2)}1' file

관련 정보