編寫一個小腳本來執行我的服務器上的內務管理任務。如何獲取號碼?
我想抓住剛的ethX的X,
echo `grep -m1 -oE "eth[0-9]*" /etc/network/interfaces | grep -oE [0-9]*`
這工作,但我想知道,如果有人知道一次性命令,可以做到這一點,即一個普通李毅華,可以採取一個字實例,room456,只能吐出數字。
編寫一個小腳本來執行我的服務器上的內務管理任務。如何獲取號碼?
我想抓住剛的ethX的X,
echo `grep -m1 -oE "eth[0-9]*" /etc/network/interfaces | grep -oE [0-9]*`
這工作,但我想知道,如果有人知道一次性命令,可以做到這一點,即一個普通李毅華,可以採取一個字實例,room456,只能吐出數字。
使用positive lookbehind匹配由eth
之前的任何數字串:
$ cat file
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
$ grep -Po '(?<=eth)[0-9]+' file
0
1
不是正則表達式的專家,whats?<= – kmassada
這是[正面lookbehind](http://www.regular-expressions.info/lookaround.html)請參閱支持它的重要註釋(如'perl'因此' -P'選項,因爲ER不支持)。 –
使用sed
:
sed 's/^eth\([0-9]\+\):.*$/\1/g' /etc/network/interfaces
迴盪在反引號東西是多餘的。只要刪除回聲和反引號。 –