Shell-Script
檢查文件中一行的第二個整數是否匹配
我有一個具有以下條目格式的文件。
$ cat mw.hosts host23v0242 USER=wsadmin MOUNTPOINT=/web server21v0243 USER=wsadmin MOUNTPOINT=/web myser13v0418 USER=wladmin MOUNTPOINT=/web whatever22v0419 USER=wladmin MOUNTPOINT=/web .... ....
我希望 grep (列出)左側第二個整數為“3”的所有條目
因此,在上面的範例中,所需的輸出是:
host23v0242 USER=wsadmin MOUNTPOINT=/web myser13v0418 USER=wladmin MOUNTPOINT=/web
如您所見,第二個整數匹配“3”。
你能建議嗎?
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
.
您也可以為此使用 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