私は持っています
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/$/\}/'
これは正規表現に関して以前に持っていた2つの質問に基づいています。私は数字で始まるものを一致させようとしています。試合開始と試合終了を交換します。
コードが私に与えた
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'