例(任意)テキスト:
[email protected]:Portuguesa-Span103
[email protected]
[email protected]:Sanchismo103
希望の出力:
[email protected]:Portuguesa-Span103
[email protected]
[email protected]:Sanchismo103
通常、これは私が使用する電子メールアドレスの正規表現です。
[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}
各行の形式に関係なく、すべての電子メールアドレスを見つけて、単に小文字にするコマンドが必要です。残りの行はまだ大文字のままです(メールアドレス以外は何も変更されていません)。
これを使用するために私が好むツールはbash(および関連ツール)です。どこから始めるべきか分からないので、まだ自分で試してみません。
私はGnu/Cygwinを使っています。
ベストアンサー1
GNU sedでは、次のことができます。
sed -e 's/^\([^@]*\)@/\L\1@/' file
これにより、行の先頭から最初の行@
まで、すべての内容が小文字に変換されます。例えば
$ sed -e 's/^\([^@]*\)@/\L\1@/' input.txt
[email protected]:Portuguesa-Span103
[email protected]
[email protected]:Sanchismo103
電子メールアドレスが各行の先頭にない場合、または1行に複数の電子メールアドレスがある可能性がある場合は、代わりに\b
検索^
を固定して開始行の代わりに単語境界タグに置き換えることができます。
sed -e 's/\b\([^@]*\)@/\L\1@/g' input.txt