コマンドの実行時に受信したメッセージ番号を抽出したいと思いますmailx -H
。未読メッセージと新しいメッセージのメッセージ番号のみが必要です。次のコマンドを試してみました。
mailx -H|grep '^ [UN]'|cut -c 3-
ただし、目的の出力を提供しません。 U または N の後に行全体を提供します。 mailx -H コマンドの出力例は次のとおりです。
O 95 abcd Thu Sep 6 20:29 25/1245 Incident: 00291
O 96 efgh Thu Sep 6 20:29 25/1245 Incident: 00291
O 97 abcd Thu Sep 6 20:29 25/1245 Incident: 00291
O 98 pqrs Thu Sep 6 20:29 25/1245 Incident: 00291
O 99 abcd Thu Sep 6 20:29 25/1245 Incident: 00291
U100 cnhn Thu Sep 6 20:29 25/1244 Incident: 00291
U101 gont Thu Sep 6 20:29 25/1244 Incident: 00291
U102 qwer Thu Sep 6 20:29 25/1244 Incident: 00291
UまたはNの後の数字、つまり新しいメッセージまたは未読メッセージとO(以前)メッセージが必要です。シェルスクリプトでこれを行うにはどうすればよいですか?予想される出力は次のとおりです。
95
96
97
98
99
100
101
102
ベストアンサー1
この試み、
mailx -H | nawk -F '[^0-9]+' '/^ [U|N]/ { print $2}'
[^0-9]+
FSとして。U
またはで始まる行の抽出N
- 2番目のフィールドの印刷