나는 가지고있다
1. Lorem
He he he
% not sure spelling
2. Lorem
ipsun
있기를 바랍니다
\textbf{1. Lorem}
He he he
% not sure spelling
\textbf{2. Lorem}
ipsun
내 의사코드 시도
perl -000pe 's/\n\n\d./; s/\n\d.\n\\textbf\{ /g; s/$/\}/'
이것은 정규 표현식에 관해 이전에 가졌던 두 가지 질문을 기반으로 합니다. 나는 숫자로 시작하는 것을 일치시키려고 노력합니다. 경기 시작과 경기 종료를 교체합니다.
코드가 나에게 준
Backslash found where operator expected at -e line 1, near "s/\n\n\d./; s/\"
Backslash found where operator expected at -e line 1, near "n\"
Backslash found where operator expected at -e line 1, near "n\"
Backslash found where operator expected at -e line 1, near "textbf\"
Backslash found where operator expected at -e line 1, near "$/\"
(Missing operator before \?)
syntax error at -e line 1, near "s/\n\n\d./; s/\"
Execution of -e aborted due to compilation errors.
주어진 텍스트를 굵게 만드는 방법은 무엇입니까?
답변1
-000
각 "단락"을 "줄"로 만들기 때문에 클래식 정규식 앵커( ^
및 $
)를 사용하여 각 "줄"의 시작과 끝을 일치시킬 수 있습니다. 따라서 귀하의 경우 필요한 것은 다음과 같습니다.
$ perl -000pe 's/^(.+)\n/\\textbf{$1}\n/;' file
\textbf{1. Lorem}
He he he
\textbf{2. Lorem }
ipsun
참고로 \
이스케이프( \\
) \
는 다른 문자를 이스케이프하는 데 사용되는 특수 문자이므로 자체 이스케이프에도 사용해야 합니다.
주석을 단락의 첫 번째 줄로 지정할 수 있는 경우 이 접근 방식은 실패합니다. 숫자로 시작하는 모든 줄을 굵게 표시해야 합니다.
perl -pe 's/^\d\..+/\\textbf{$&}/' file
답변2
이 시도:
$ perl -ple '$_ = "\\textbf{$_}" if /^\d/' cat2
\textbf{1. Lorem}
He he he
\textbf{2. Lorem}
ipsun
답변3
-0777
전체 파일을 한 번에 메모리에 로드하는 옵션을 사용했습니다 . 그런 다음 개행 문자를 바꿀 수 있습니다.
perl -0777 -pe 's/\n(\d\..*)/\n\\textbf{$1}/g'