我想从我的设备列表文件中删除域名。我的设备列表中有(device.marketing.company.com)和其中一些(device.company.com)。我只需要设备名称和ip地址。所以我如何从列表中剥离域名和子域名。并保留设备名称和ip地址
device1.marketing.company.com 10.1.100.12
device2.marketing.company.com 10.1.100.13
device3.marketing.company.com 10.1.100.14
device4.marketing.company.com 10.1.100.15
device5.company.com 10.1.100.16
device6.company.com 10.1.100.17
device7.company.com 10.1.100.18
我正在寻找的结果
device1 10.1.100.12
device2 10.1.100.13
device3 10.1.100.14
device4 10.1.100.15
device5 10.1.100.16
device6 10.1.100.17
device7 10.1.100.18
谢谢,
发布于 2011-03-08 07:26:24
更新2
使用sed '/\..* /s/\.[^ ]*//' ./devlist
输入
$ cat ./devlist
device1.marketing.company.com 10.1.100.12
device2.marketing.company.com 10.1.100.13
device3.marketing.company.com 10.1.100.14
device4.marketing.company.com 10.1.100.15
device5.company.com 10.1.100.16
device6.company.com 10.1.100.17
device7.company.com 10.1.100.18
device8 10.1.100.19输出
$ sed '/\..* /s/\.[^ ]*//' ./devlist
device1 10.1.100.12
device2 10.1.100.13
device3 10.1.100.14
device4 10.1.100.15
device5 10.1.100.16
device6 10.1.100.17
device7 10.1.100.18
device8 10.1.100.19发布于 2011-03-08 07:27:09
您可以将设备名称正则表达式放入一个单独的列表中。与"^(\w*)..*$“有关的内容
例如,如果您想使用sed:
sed 's/^\(\w*\)[.].*$/\1/' listfile.txt > output.txt
分解表达式:
我们使用了
发布于 2011-03-08 07:34:39
cut是一个很好的工具。
me@server:~$ echo hi.com | cut -d"." -f1
hi
me@server:~$ echo higher.hi.com | cut -d"." -f1
higher
me@server:~$ -d提供分隔符。默认情况下,分隔符是制表符,-f提供要使用的字段。列的基于1的索引。
https://stackoverflow.com/questions/5226543
复制相似问题