私のファイルデータは次のとおりです
bill johnson
robert dylan
neil o'bryan
要件は、姓を抽出し、@mail.comを追加することです。次のコマンドを使用しました。
cut -d"|" -f2 emp.lst | sed 's/\([a-z][a-z]*\) \([a-z][a-z]*\)/\[email protected]/'
- ファイルから2番目のフィールド(フルネーム)を取得するCutコマンド - 名前と姓を分離し、電子メールを姓に割り当てるSed
名前を除くすべてがうまくいき、neil o'bryan
以下は私が得た結果です。
予想通り、一重引用符で名前を取得する方法を教えてください。それだけです。[Eメール保護]
ベストアンサー1
電子メールアドレスo'brian
に存在する必要があると仮定すると、不要な文字を削除するためにパイプラインにステップを追加するだけです。obrian
tr
cut -d "|" -f2 emp.lst |
tr -d "'" |
sed 's/\([a-z][a-z]*\) \([a-z][a-z]*\)/\[email protected]/'
削除したい他の文字に対しても同じことをしたり、別の文字に変換したりできます。
cut -d "|" -f2 emp.lst |
tr -d "'" |
tr 'åäöé' 'aaoe' |
sed 's/\([a-z][a-z]*\) \([a-z][a-z]*\)/\[email protected]/'
アドレスがアポストロフィでなければならない場合は、正規表現に追加するだけです。o'[email protected]
cut -d "|" -f2 emp.lst |
sed "s/\([a-z][a-z]*\) \([a-z]['a-z]*\)/\[email protected]/"