Markdown의 각주에 대한 정규식

Markdown의 각주에 대한 정규식

인쇄용 Markdown 문서와 EPUB 파일을 준비 중입니다. EPUB 파일에서 단어 정의 각주를 제거하고 싶습니다.

제거하려는 각주 형식은 모든 영숫자 문자 집합(다른 문자 포함 )일 [mean-X]수 있습니다 .X-

나는 시도했다:

grep -o "\[\^mean-.*\]"

결과의 예:

[^mean-vicissitudes]
[^mean-immortality]
[^mean-ingot]
[^mean-remonstrance]
[^mean-libeller]
[^mean-debauched] and the most amorous[^mean-amorous]
[^mean-turpitude]
[^mean-debauched] drunken, licentious,[^mean-licentious]
[^mean-frivolous]
[^mean-despots]
[^mean-repentance]
[^mean-ignominy]
[^mean-vain]
[^mean-presumptuousness] haughtiness,[^mean-haughtiness]

같은 줄에 두 개 이상의 각주가 나타나면 정규식은 마지막 항목으로 확장됩니다 ].

나는 또한 다음을 시도했습니다.

  1. grep -o "\[\^mean-.*\][^\[]"여전히 원본과 같은 경우가 있으며 마지막 사례 뒤에 쉼표와 콜론을 캡처합니다 ].

  2. grep -o "\[\{1\}\^mean-.*\]"그러나 그것은 문제를 해결하지 못합니다. 나는 그것이 단지 하나의 인스턴스를 캡처할 것이라고 생각합니다 [.

  3. grep -o "\[\^mean-.*\]\{1\}"하지만 그것도 문제를 해결하지 못합니다. 나는 그것이 단지 하나의 인스턴스를 캡처할 것이라고 생각합니다 ].

grep을 사용하여 각주를 캡처하고 제거하는 방법(공백으로 바꾸는 대신, 대신)제거하다그들을)?

PS Windows용 Git Bash를 사용하고 있는데 명령어는 똑같은 것 같아요.

답변1

문제는 .*그것을 표현하는 방식, 즉 "탐욕"입니다. 이렇게 하면 표현식이 ]줄의 마지막 부분까지 ]줄의 나머지 부분과 일치하게 됩니다. 대신, 표현의 이 부분을 당신이 직접 가능하다고 말하는 것, 즉 영숫자 합계와 일치하도록 만드세요 -. 영숫자가 일치 [[:alnum:]]하고 [[:alnum:]-]괄호 안의 표현식이 대시와도 일치하도록 허용합니다.

\[\^mean-[[:alnum:]-]*\]

질문의 데이터에 대해 다음을 실행하십시오.

$ grep -o '\[\^mean-[[:alnum:]-]*\]' file
[^mean-vicissitudes]
[^mean-immortality]
[^mean-ingot]
[^mean-remonstrance]
[^mean-libeller]
[^mean-debauched]
[^mean-amorous]
[^mean-turpitude]
[^mean-debauched]
[^mean-licentious]
[^mean-frivolous]
[^mean-despots]
[^mean-repentance]
[^mean-ignominy]
[^mean-vain]
[^mean-presumptuousness]
[^mean-haughtiness]

당신의 grep명령은 분명히정제일치하지만 삭제하지는 않습니다. 이렇게 하려면 sed편집 스크립트를 사용하십시오.

$ sed 's/\[\^mean-[[:alnum:]-]*\]//g' file





 and the most amorous

 drunken, licentious,





 haughtiness,

빈 줄을 추가하고 초기 공백을 제거합니다.

$ sed 's/\[\^mean-[[:alnum:]-]*\]//g; /^[[:blank:]]*$/d; s/^[[:blank:]]*//' file
and the most amorous
drunken, licentious,
haughtiness,

또는 [^mean-...],

sed '/\[\^mean-[[:alnum:]-]*\]/{ s///g; /^[[:blank:]]*$/d; s/^[[:blank:]]*//; }' file

관련 정보