다음과 같이 끝나는 문장이있는 파일이 있습니다. \@.Next sentence
. 나는 그 기간 이후에 공백을 넣고 싶다.sed를 사용하여 마침표 뒤에 공백을 삽입하십시오.
\@.
의 모든 경우에는 공백이 없으므로 정규식에서 마침표 다음의 문자가 대문자인지 확인합니다.
기간이 끝난 후 한 문자 만 검사하기 때문에 \@.
에서 \@.
으로 바꿀 수는 없으며 어떤 문자가 마침표 뒤에 나오는지 모르기 때문에 붙어 있습니다. 현재
내 명령을
내가 대체 정규식에 사용할 일치하는 문자열의 마지막 문자를 잡을 수있는 방법sed -i .bak -E 's/\\@\.[A-Z]/<SOMETHING IN HERE>/g' *.tex
?
편집 : 기록을 위해, 내가 sed
의 BSD 버전 (나는 OS의 X를 사용하고 있습니다) 사용하고 있습니다 - 내 previous question regarding sed
에서 분명히 나오지 BSD (또는 적어도, 애플 버전은) 항상 좋은 재생되지 않습니다 GNU sed 정규 표현식.
이것은 작동하지 않습니다 :'echo '\ @. N | \ @. Q '| sed -E 's/\\\ @. (\ S)/\\\ @. \ 1/g ''은'\ @. N | \ @을 반환합니다. Q'('\ @. N | \ @. Q'; 공백이 삽입되지 않음). – simont
원하는 결과를 얻었 기 때문에 이상합니다. 나는 sed 4.2.1을 실행 중이다. 어떤 버전이 당신 것입니까? –
'gsed'를 사용하면 정확합니다; 그건 효과가 있어요. 감사합니다 – simont