2016-12-01 5 views
0

私はシェルのsedを学んでいます。 Iが最初remove_markが残っているsedによって行のN番目のターゲットワード(= 'remove_mark')を削除するには?

one tworemove_markthree fourfive 

、私はこれの出力は

one twothree fourremove_markfive 

であると予想しかし、上記のコードの出力は、次され、

echo "one tworemove_markthree fourremove_markfive" | sed -E "s?(.*)remove_mark(.*)?\1\2?" 

を次のコードを試みたが2つ目は削除されます。 しかし、私は最初のものを削除したいと思います。どうやってするの?一致したターゲット単語をすべて削除する方法は?どうもありがとうございました。

+1

あなたのタイトルは、あなたの質問と一致していないようだ - 削除したいんどのワード、ご希望の出力である、すなわち何?必要に応じて、あなたの質問を編集し、タイトルを変更してください。 –

答えて

1

remove_markと一致するだけで何も置き換えません。

$ echo "one tworemove_markthree fourremove_markfive" | sed 's/remove_mark//' 
one twothree fourremove_markfive 

g(グローバル)修飾子を使用して、すべてのターゲットを削除します。

$ echo "one tworemove_markthree fourremove_markfive" | sed 's/remove_mark//g' 
one twothree fourfive 
+0

シンプルなソリューションを教えていただきありがとうございます。 – mora

+1

@moraあなたは大歓迎です:) – nu11p01n73R

関連する問題