파일에서 문자열을 바꾸는 방법은 무엇입니까?

파일에서 문자열을 바꾸는 방법은 무엇입니까?

파일에 다음 줄이 있고 \N두 개의 쉼표 사이에 삽입 하고 싶습니다.

20121128020001,2012-11-28 02:00:01.000,,,,,,,3.80,,,,,

씨앗을 사용해봤는데

sed -i 's/,,/,\\N,/g' Test.CSV

나는 다음과 같은 결과를 얻습니다.

0121128020001,2012-11-28 02:00:01.000,\N,,\N,,\N,,3.80,\N,,\N,,

두 번 실행할 수 있지만 대용량 파일에서는 비효율적입니다. sed 명령을 수정하는 방법은 무엇입니까?

답변1

두 번째 쉼표가 일치의 일부가 되지 않도록 미리보기와 함께 Perl을 사용하십시오.

perl -pe 's/,(?=,)/,\\N/g'

또는 같은 줄에 같은 식을 두 번 사용합니다.

sed 's/,,/,\\N,/g;s/,,/,\\N,/g'

관련 정보