곧은 따옴표를 둥근 따옴표로 바꾸는 방법

곧은 따옴표를 둥근 따옴표로 바꾸는 방법

곧은 작은따옴표와 큰 따옴표를 큰따옴표( ‘ ’, )로 바꾸고 싶습니다 . “ ”쉘 명령을 사용하여 이 작업을 어떻게 수행할 수 있습니까?

답변1

이 입력 파일을 사용하십시오(제공:화상):

$ cat file
When 'chapmen billies' lea "the street" and 'drouthy' neebors "neebors" meet.

그리고 어떤 이상한 :

awk '{
    while ( match($0,/\047[^\047]*\047/) ) {
        $0 = substr($0,1,RSTART-1) "‘" substr($0,RSTART+1,RLENGTH-2) "’" substr($0,RSTART+RLENGTH)
    }
    while ( match($0,/"[^"]*"/) ) {
        $0 = substr($0,1,RSTART-1) "“" substr($0,RSTART+1,RLENGTH-2) "”" substr($0,RSTART+RLENGTH)
    }
    print
}' file
When ‘chapmen billies’ lea “the street” and ‘drouthy’ neebors “neebors” meet.

위의 내용은 인용문이 항상 쌍으로 온다고 가정합니다.

답변2

UTF perl-8 로케일:

perl -C -0777 -pi.back -e '
  s/\N{QUOTATION MARK}(.*?)\N{QUOTATION MARK}/\N{LEFT DOUBLE QUOTATION MARK}$1\N{RIGHT DOUBLE QUOTATION MARK}/gs;
  s/\N{APOSTROPHE}(.*?)\N{APOSTROPHE}/\N{LEFT SINGLE QUOTATION MARK}$1\N{RIGHT SINGLE QUOTATION MARK}/gs
  ' your-files

(원본 백업에는 접미사가 붙습니다 .back. .back백업이 마음에 들지 않으면 삭제하십시오.)

관련 정보