디렉토리에 많은 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
답변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