Q1:すべてのドメイン名が総称になるように一連の電子メールIDを含むファイルを編集したいのですが。
Example,
peter@yahoo.com
peter@hotmail.co.in
philip@gmail.com
to
peter_yahoo@generic.com
peter_hotmail@generic.com
philip_gmail@generic.com
次のsedcmdを使用して@を_に置き換えました
sed 's/@/_/' <filename>
ドメイン名の最後の部分を@generic.comに置き換えることができるように、上記のcmdに別のsed cmdを追加する方法はありますか?
Q2:ドメイン名の最後にテキストがある場合、どうすればこれにアプローチできますか?
Example,
peter@yahoo.com,i am peter
peter@hotmail.co.in,i am also peter
To,
peter_yahoo.com@generic.com,i am peter
peter_hotmail.co.in@generic.com,i am also peter
@(。*)の代わりに@(、)を試しましたが、機能せず、他の解決策を考えることができません
Q3:私の例がこのようなものだとしたら、
peter@yahoo.com
peter@hotmail.co.in,i am peter
結果を次のようにしたいと思います。
peter_yahoo.com@generic.com
peter_hotmail.co.in@generic.com,i am peter,i am peter
単一のsedcmdでこれを行うにはどうすればよいですか?
次のコマンドは、次のようになります。
sed -r 's!@(.*)!_\1@generic.com!' FILE
peter_yahoo.com@generic.com
peter_hotmail.co.in,i am peter,i am peter@generic.com
そして、次のcmdは「peter@yahoo.com」では機能しません。
sed -r 's!@(.*)(,.*)!_\1@generic.com!' FILE
ありがとう!!