パターンに一致する場合は、行全体を に置き換える必要がありますsed
。たとえば、行が「one two six three four」で、「six」がある場合は、行全体を「fault」に置き換える必要があります。
ベストアンサー1
次のいずれかの方法で実行できます。
sed 's/.*six.*/fault/' file # check all lines
sed '/six/s/.*/fault/' file # matched lines -> then remove
を含む行全体を取得しsix
、 に置き換えますfault
。
例:
$ cat file
six
asdf
one two six
one isix
boo
$ sed 's/.*six.*/fault/' file
fault
asdf
fault
fault
boo
それは、この解決策にSedを使用して文字列を含む行全体を置換する
より一般的には、次のような表現を使うことができますsed '/match/s/.*/replacement/' file
。これにより、sed 's/match/replacement/'
を含む行の式が実行されますmatch
。あなたの場合、次のようになります。
sed '/six/s/.*/fault/' file
「1、2、6、8、11、3、4」があり、「8」と「11」を「悪い」単語として含めたい場合はどうすればよいでしょうか。
この場合、-e
複数の条件に を使用できます。
sed -e 's/.*six.*/fault/' -e 's/.*eight.*/fault/' file
等々。
または:
sed '/eight/s/.*/XXXXX/; /eleven/s/.*/XXXX/' file