ファイルの1行にある2番目の整数が一致することを確認してください。

ファイルの1行にある2番目の整数が一致することを確認してください。

次のエントリ形式のファイルがあります。

$ cat mw.hosts
host23v0242 USER=wsadmin                                                  MOUNTPOINT=/web
server21v0243 USER=wsadmin                                                  MOUNTPOINT=/web
myser13v0418 USER=wladmin                                                  MOUNTPOINT=/web
whatever22v0419 USER=wladmin                                                  MOUNTPOINT=/web
....
....

左から2番目の整数が"3"であるすべての項目をgrep(ナ列)したいと思います。

したがって、上記の例では、望ましい出力は次のようになります。

host23v0242 USER=wsadmin                                                  MOUNTPOINT=/web
myser13v0418 USER=wladmin                                                  MOUNTPOINT=/web

ご覧のとおり、2番目の整数は「3」と一致します。

何か提案してもらえますか?

答え1

grep '^[^0-9]*[0-9]3' mw.hosts

または

grep '^[^[:digit:]]*[[:digit:]]3' mw.hosts

または(GNU準拠のPerl正規表現を使用grep -P):

grep -P '^\D*\d3' mw.hosts

これらのすべては、ゼロ以上の数字以外の文字で始まり、その後に数字、続くすべての行と一致します3

答え2

この目的のためにawkを使用することもできます。

awk '/[0-9]3v/ { print }' mw.hosts
awk '/[0-9]3v/ { print }' mw.hosts
host23v0242 USER=wsadmin                                                  MOUNTPOINT=/web
myser13v0418 USER=wladmin                                                  MOUNTPOINT=/web

関連情報