文章が次のように終わるファイルがたくさんあります:\@.Next sentence
。私は期間の後にスペースを挿入したいと思います。sedを使ってピリオドを挿入した後にスペースを挿入
\@.
のすべてのオカレンスにはスペースが含まれていませんが、私の正規表現はピリオドの次の文字が大文字であるかどうかを確認します。
期間の後に1文字をチェックしているので、\@.
から\@.
への置換はできません。期間の後にどんな文字があるのかわからないので、私は立ち往生しています。
マイコマンド:
sed -i .bak -E 's/\\@\.[A-Z]/<SOMETHING IN HERE>/g' *.tex
どのように交換用の正規表現で使用するために一致する文字列の最後の文字をつかむことができますか?
EDIT:sed
(私はOS Xを使用しています)のBSDバージョンを使用しています - 私のprevious question regarding sed
から、明らかにBSD sed(または少なくともAppleバージョン) GNU sed正規表現で。
これは動作していないようです: 'echo '\ @。N | \ @。 Q '| sed -E 's/\\\ @。(\ S)/ \\\ @。 \ 1/g ''は' \ @。N | \ @を返します。 Q '(' \ @。N | \ @。Q';スペースは挿入されません)。 – simont
奇妙なのは、私が望む結果を得るからです。私はsedを実行しています。4.2.1。あなたのバージョンは? –
'gsed'を使うと正しいと思います。それは動作します。ありがとうございました – simont