我正在学习LPIC-1考试,我只能理解下面的命令剪切示例:
ifconfig enp3s0f2产生以下结果:
enp3s0f2: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 00:90:f5:e5:e4:7c txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0然后运行命令ifconfig enp3s0f2 | grep ether | cut -d " " -f 10,该命令显示此输出,因为我希望隔离MAC地址:00:90:f5:e5:e4:7c。
但是,我只使用了-f参数,它的值为10。我不明白为什么是10而不是其他号码。我看了几个页面,并举例说明了如何使用cut命令和不同的参数,但是在这个例子中,这对我来说完全没有意义。
如何隔离这个MAC地址--它应该是分配给-f的值10?
发布于 2018-09-05 10:23:26
这是因为我们使用的分隔符,我们在ether前有8个空格
我们可以使用下面的代码进行检查。
ifconfig enp3s0f2 | grep ether | sed 's/ether.*//' |grep -o ' ' | wc -l
8第九个字段是ether,第十个字段是00:90:f5:e5:e4:7c
发布于 2018-09-05 10:21:42
来自man cut:
-d, --delimiter=DELIM
use DELIM instead of TAB for field delimiter
-f, --fields=LIST
select only these fields; also print any line that contains no delimiter character, unless the -s option is specified所以你用每个分隔字符来分割输出,在你的例子中是一个空格。这会产生一个字段数组。-f选项告诉cut只返回第十个字段。
https://unix.stackexchange.com/questions/466977
复制相似问题