2 つの単語間のデータの削除

2 つの単語間のデータの削除

2つの単語の間に何があるかに関係なく、すべてのデータを削除したいと思います。両方の単語は示されているとおりuserです。Gecko)

たとえば、

abcd: efgh user jfslkdj ajskdlfj askldjf Gecko) print
ijkl: mnop user fjskdf sdfjkdf skdjf sdkfj Gecko) second

次のように表示する必要があります。
abcd: efgh print
ijkl: mnop second

これが可能かどうか教えてください。

これまでに試したことは次のとおりです。まだ遠いことを知っています。

sed 's/user*Gecko)//g'

ベストアンサー1

次のようにコマンドを変更できます。

sed 's/user.*Gecko)//g'

部分文字列が削除されますuser.....Gecko)

あなたはそれを使用することができます:

sed -Ee "s/(.*)(user.*Gecko\))(.*)/\1\3/g" filename

最初と3番目のフィールドのみを印刷し、2番目のフィールドは無視します。これには、ユーザーとGeckoの間のすべてのコンテンツが含まれます。

user開始単語やGecko)最後の単語ではないと確信している場合は、次のように使用できます。

sed -Ee "s/(.*) (user.*Gecko\)) (.*)/\1 \3/g" filename

これはスペースで区切られた単語のみを置き換えるため、より正確です。

おすすめ記事