私はsedと正規表現を練習しており、以下のファイルから「cheer」のすべてのインスタンスをlalalandに置き換えようとしています。ただし、応援のようなものは除外してください。
ubuntu@ip-172-31-58-40:~$ cat test
cheer
cheering
.
word
cheerytree
acheerytree
ubuntu@ip-172-31-58-40:~$ sed -i "s/cheer[^ing]/lalaland/g" test
ubuntu@ip-172-31-58-40:~$ cat te
cat: te: No such file or directory
ubuntu@ip-172-31-58-40:~$ cat test
cheer
cheering
.
word
lalalandtree
alalalandtree
なぜ最初のアイテム「Cheers」が抜けたのか分かりません。
ありがとう
ベストアンサー1
このパターンはあなたが思うものとは異なります。つまり、またはで[^ing]
なければならない文字と一致します。i
n
g
あなたの質問を「返信のインスタンスを完全な単語に置き換える」に置き換えると、単語の境界マークを使用して次のことができます\b
。
sed 's/\bcheer\b/lalaland/g'