Bash 如何获取号码?

Bash 如何获取号码?,bash,shell,unix,networking,Bash,Shell,Unix,Networking,编写一个小脚本在我的服务器上执行内部管理任务 我只想抓取ethX中的X echo `grep -m1 -oE "eth[0-9]*" /etc/network/interfaces | grep -oE [0-9]*` 这是可行的,但我想知道是否有人知道一个一次性命令可以做到这一点,例如,一个可以接受一个单词的常规表达式,比如room456,并且只吐出数字 用于匹配前面有eth的任何数字字符串: $ cat file eth0: flags=4163<UP,BROADCAST,RUNNI

编写一个小脚本在我的服务器上执行内部管理任务

我只想抓取ethX中的X

echo `grep -m1 -oE "eth[0-9]*" /etc/network/interfaces | grep -oE [0-9]*`
这是可行的,但我想知道是否有人知道一个一次性命令可以做到这一点,例如,一个可以接受一个单词的常规表达式,比如room456,并且只吐出数字

用于匹配前面有
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
$cat文件
eth0:flags=4163 mtu 1500
eth1:flags=4163 mtu 1500
$grep-Po'(?用于匹配前面有
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
$cat文件
eth0:flags=4163 mtu 1500
eth1:flags=4163 mtu 1500

$grep-Po'(?使用
sed

sed 's/^eth\([0-9]\+\):.*$/\1/g' /etc/network/interfaces

使用
sed

sed 's/^eth\([0-9]\+\):.*$/\1/g' /etc/network/interfaces

这是关于在哪里支持它的重要说明(如
perl
因此有
-P
选项,因为它不受ER支持)。这是关于在哪里支持它的重要说明(如
perl
因此有
-P
选项,因为它不受ER支持).回显backticks中的任何内容都是多余的。只需删除回显和backticks。回显backticks中的任何内容都是多余的。只需删除回显和backticks。