sedまたはawkを使用して、最初の検索と2番目の検索の間にある文字列の文字を置き換えます。

sedまたはawkを使用して、最初の検索と2番目の検索の間にある文字列の文字を置き換えます。

電子メールアドレスを含むファイルでは、_(アンダースコア)を(疑問符)に置き換える必要があります。?

ファイルは次のようになります。

EFT_020034-E015133  20140624    /ACC/[email protected]         SHR    END 
EFT_020034-E015133  20140624    /ACC/[email protected]     SHR    END
EFT_020034-E015133  20140624    /ACC/[email protected]        SHR    END

予想される出力は次のとおりです。

EFT_020034-E015133  20140624    /ACC/[email protected]         SHR    END 
EFT_020034-E015133  20140624    /ACC/[email protected]     SHR    END
EFT_020034-E015133  20140624    /ACC/[email protected]        SHR    END

私はこれをどうすることができますか?sedまたはアッEMAIL+他の下線には影響せず、(定数)と(定数)の間の下線にのみ影響しますSHR。変更は新しいファイルに保存する必要があります。

ベストアンサー1

awkは次のことを行います。

$ awk '{ gsub("_", "?", $3) ; print }' < data
EFT_020034-E015133 20140624 /ACC/[email protected] SHR END
EFT_020034-E015133 20140624 /ACC/[email protected] SHR END
EFT_020034-E015133 20140624 /ACC/[email protected] SHR END

電子メールアドレスはフィールド3にあるため、フィールド3のみ_に置き換えます?。 1つ以上の場合を含むを_使用します。gsub

おすすめ記事