次のようなものに置き換えようとしているとしましょう。
asdasdasdHit Hitasdasd Hit Hit
Hitasda Hit Hit asdaHit Hit Hit
Hit Hitasda Hit
...
...
すべての「クリーン」クリックを「OK」に置き換える方法はありますか? / gを試しましたが、すべてが正常で、s/\ Hit\ /OK/g
改行クリックが消えました。
答え1
はい。
$ sed 's/\<Hit\>/OK/g' file
asdasdasdHit Hitasdasd OK OK
Hitasda OK OK asdaHit OK OK
OK Hitasda OK
...
...
\<
単語の先頭で長さゼロの単語境界を一致させ、単語の\>
終わりでも同じことを行います。
これ長さが0ですと\<
は\>
文字自体と一致しませんが、単語境界では隣接するパターンが一致するように強制するという意味です。
ㅏ単語の境界英数字 英数字以外の文字に隣接する文字列の点。たとえば、文字列の␣
(スペース)とブランチ(他のブランク)の間の点、または改行文字の間との間の点が続きます。H
サンプルデータの3行すべてにあります。t
␣
␣Hit␣
t
GNUの場合、sed
andの代わりに使用できます\b
(andも理解していますが)。\<
\>
\<
\>
$ sed 's/\bHit\b/OK/g' file
...しかし、BSDはsed
理解していません\b
。