쉼표 사이의 문자열 주위에 따옴표를 넣으세요(숫자는 넣지 마세요).

쉼표 사이의 문자열 주위에 따옴표를 넣으세요(숫자는 넣지 마세요).

그래서 파일에 CSV 형식을 거의 나타내지만 전부는 아닌 일부 텍스트가 있습니다. 그래도 CSV 파일로 변환하고 싶습니다.

예를 들면 다음과 같습니다.

cuz,0,1,2,3,-4,abc,a b c,0

그걸 어떻게 바꿀 수 있나요?

"cuz",0,1,2,3,-4,"abc","a b c",0

어떤 도움이라도 주시면 감사하겠습니다!

미리 감사드립니다.

답변1

둔한 사람접근하다:

gawk -i inplace -F, '{for(i=1;i<=NF;i++){ 
      if ($i!~/^-?[0-9]*$/) $i=sprintf("\"%s\"",$i); }}1' OFS=',' file

내용 file:

"cuz",0,1,2,3,-4,"abc","a b c",0

-i inplace- 허용제자리에파일 수정

$i!~/^-?[0-9]*$/- 숫자를 제외한 문자를 포함하는 패턴 일치 전용 필드

관련 정보