단어 줄 바꿈을 유지하면서 곧은 따옴표를 둥근 따옴표로 변경하세요.

단어 줄 바꿈을 유지하면서 곧은 따옴표를 둥근 따옴표로 변경하세요.

단어 줄 바꿈을 생략하지 않고 곧은 따옴표를 스마트 스마트 따옴표로 변경하는 방법입니다.

이 예에는 작은따옴표와 큰따옴표가 포함되어 있습니다.

입력하다

1 I have bowed before only one sanyasi in my life, and that is 'Sri
2 Chandrasekharendra Saraswathi', known to the world as the "Parmacharya."
3 
4 Therefore, I was the ''modern 
5 Indian'',believer in science, and
6 with little concern for spiritual
7 diversions.

산출

1 I have bowed before only one sanyasi in my life, and that is ‘Sri
2 Chandrasekharendra Saraswathi’, known to the world as the “Parmacharya.”
3 
4 Therefore, I was the “modern 
5 Indian”,believer in science, and with
6 little concern for spiritual 
7 diversions.

답변1

줄 바꿈이 더 이상 문제가 되지 않게 하려면 전체 단락이나 전체 파일이 하나의 문자열로 처리되도록 대체를 수행할 수 있습니다. Perl을 사용하면 -0777전체 파일을 한 번에 읽을 수도 있고 -00단락 모드(즉, 빈 줄로 구분된 섹션, 물론 줄 번호가 입력 파일의 일부가 아니어야 함)를 사용할 수도 있습니다.

$ perl -0777 -pe 's/\x27\x27/"/g; s/\x27(.*?)\x27/‘$1’/gs; s/"(.*?)"/“$1”/gs; ' input
I have bowed before only one sanyasi in my life, and that is ‘Sri
Chandrasekharendra Saraswathi’, known to the world as the “Parmacharya.”

Therefore, I was the “modern 
Indian”, believer in science, and
with little concern for spiritual
diversions.

\x27나는 인용을 더 쉽게 하기 위해 작은따옴표의 16진수 표현을 사용합니다. .*?모든 문자열을 나타내지만 가능한 가장 짧은 일치 항목을 나타냅니다. 첫 번째 규칙은 큰 작은따옴표를 ''큰따옴표로 변경합니다.

또는 GNU sed와 마찬가지로 -z입력을 NUL로 구분된 문자열로 가져오면 일반적인 텍스트 파일을 한 번에 읽을 수 있습니다.

$ sed -zEe 's/\x27\x27/"/g; s/\x27([^\x27]*)\x27/‘\1’/g; s/"([^"]*)"/“\1”/g; ' input
I have bowed before only one sanyasi in my life, and that is ‘Sri
Chandrasekharendra Saraswathi’, known to the world as the “Parmacharya.”

Therefore, I was the “modern 
Indian”, believer in science, and
with little concern for spiritual
diversions.

답변2

간단한 해결책을 찾았습니다. pandoc옵션이 -S곧은 따옴표를 둥근 따옴표로 변경하는 경우 다음과 같이 사용됩니다 .

pandoc --wrap=preserve -f markdown -t markdown -S <filename>

에서 가져옴코멘트통과라마프라카샤

답변3

Perl의 단어 문자 클래스에 전적으로 의존하는 간단한 구현입니다. ["]만 ["] 또는 ["]로 변경하세요.

#!/usr/bin/perl -w -0777
local $/ = undef;

open INFILE, $ARGV[0] or die "I can't read the file. $!";
$string =  <INFILE>;
close INFILE;

$string =~ s/(\w)\"/$1”/smg;
$string =~ s/\"(\w)/„$1/smg;

open OUTFILE, ">",   $ARGV[1] or die "I can't write to the file. $!";
print OUTFILE ($string);

close 

다른 이름으로 저장 script.pl하고 실행하세요 perl script.pl INFILE OUTFILE. 그런 다음 |aaaaaa"bbbb| 또는 |aaaa "bbbb|와 같이 잘못 배치된 곧은 따옴표를 검색하면 됩니다.

관련 정보