1

编写一个小脚本来在我的服务器上执行管家任务。

我只想抓住 ethX 中的 X,

echo `grep -m1 -oE "eth[0-9]*" /etc/network/interfaces | grep -oE [0-9]*`

这可行,但我想知道是否有人知道可以执行此操作的一次性命令,即可以使用单词的常规表达式,例如 room456 并且只吐出数字。

4

2 回答 2

3

使用正向向后查找以匹配任何以 开头的数字字符串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
于 2012-12-10T11:27:15.373 回答
1

使用sed

sed 's/^eth\([0-9]\+\):.*$/\1/g' /etc/network/interfaces
于 2012-12-10T11:45:52.413 回答