質問

自分のユーザーのメールアドレスに紐付くプロフィール /etc/passwd.その5分野にまで掴むものの、それらは異なる場内カンマで区切られたリストの5分野です。

できるかを教えてください regexのものを掴んだのメールアドレス (delimetedカンマ区切)からこのファイルとは何ですか?(まgrepやsedからバスクリプト)

サンプルからファイル:

user1:x:1147:5005:User One,Department,,,email@domain.org:/home/directory:/bin/bash
user2:x:1148:5002:User Two,Department2,email2@gmail.com,:/home/directory:/bin/bash
役に立ちましたか?

解決

う:

,([^@]+@[^,:]+)

のグループのメールアドレスです。

[更新に基づくコメントするアドレスな常に終了し、カンマで区切]

他のヒント

標準メール正規表現は細:

http://regexlib.com/DisplayPatterns.aspx

また、優れた: webサイト!

実は、このような完璧な仕事Awk.現在のように、ほとんどの人はまっとうな専門家Awk"前に進むと...

awk -F : '{print $5}' /etc/passwd

るのでしょう5分野':'でのフィールドセパレータから/etc/passwdでの5分野ごしていた。

awk -F , '{print $1}'

が、第1の分野の標準入力からwhere','たdelimimterで

awk -F : '{print $5}' /etc/passwd | awk -F , '{print $1}'

が、初のカンマで区切った場(名フィールドからコロン分野(分野のcruftまれています。) に/etc/passwdファイルです。

調整は、エンジンマネージャをエンジン1の分野でメールします。

に違いがないことなく、パイプにAwk.使っていAwkのための分割出分野にもそれ以上ではありません。だくことになるから誰かが大好きという正規表現...

ちなみのフィールドのとして知られるGCOSます。あらつGECOS.

sed -r -e "s/^.*[,:]([^,:]+@[^,:]+).*$/\1/g" /etc/passwd

だという

すべての検索メールでの有効な文字の前後に@ます。のように:

[-A-z0-9.]+@[-A-z0-9.]+

欲張りマッチングはアップまで、スをカンマ区切りで入力または加工します。

チェックする文字で有効なメールアドレスがあります。私もの(+)

sed 's/,*:\/.*//;s/^.*://;s/.*,//' /etc/passwd
[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

すべャで最もemials

どのように標準 RFC2822:

(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])

終.それだけです。:)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top