perl - 如何使用 perl 脚本在具有链接/以太网的变量中获取以太网适配器名称?
问题描述
使用 perl 脚本,当我们执行“ip/addr”时,我想找到具有特定字符串“link/ether”的以太网适配器的名称。我想将它们存储在一个变量中。喜欢:-
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
link/ether 00:21:28:d6:1f:f9 brd ff:ff:ff:ff:ff:ff
4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
link/ether 00:21:28:d6:1f:fa brd ff:ff:ff:ff:ff:ff
5: eth3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
link/ether 00:21:28:d6:1f:fb brd ff:ff:ff:ff:ff:ff
6: ab0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
link/band 00:21:28:d6:1f:fb brd ff:ff:ff:ff:ff:ff
从上面应该输出以下内容: -
eth1
eth2
eth3
就像存储在变量中并在循环中运行一样。这是我正在尝试但无法正常工作的方法:-
my $last="";
my @results = `ip addr`;
my $adap="";
my $flag=0;
foreach my $line (@results)
{
if (($line =~ /ether/))
{
$adap = substr($last,3,7);
chomp($adap);
$str = $adap;
$flag=1;
}
}
print $adap;
解决方案
它可以像下面这样工作,只需将输出存储在@array 中:-
ip -o addr show | grep "ether" | awk -F': ' '{print $2}'
推荐阅读
- python - 如何在 Tkinter 中滚动浏览一组标签小部件?
- python - 如何在 Windows 版 Git Bash 中启用 Python 上次命令历史记录?
- autohotkey - 我需要一个热键,例如“c”来启用脚本
- javascript - Camera js Web App无法获取相机供稿
- powershell - 将日历添加到组合框
- git - 如何获取 tfs 中两个变更集或 git 中两个分支的多个文件的所有更改?
- video - 视频点播如何在 Youtube 中工作?
- gcc - 为什么独立的 C hello 程序在用作动态链接器时会崩溃
- javascript - 使用变量推送json
- javascript - 在 React 状态下使用嵌套对象