【发布时间】:2017-03-13 11:18:24
【问题描述】:
我有一个文件说 file1 包含以下数据
1.1.1.1
2.2.2.2
3.3.3.3
testserver.test.com
4.4.4.4
255.255.255.0
我希望前两个 ip 以下面的格式添加到文件 2 中
预期输出(文件2)
DNS1=1.1.1.1
DNS2=2.2.2.2
请帮忙
【问题讨论】:
-
你尝试了什么?
我有一个文件说 file1 包含以下数据
1.1.1.1
2.2.2.2
3.3.3.3
testserver.test.com
4.4.4.4
255.255.255.0
我希望前两个 ip 以下面的格式添加到文件 2 中
预期输出(文件2)
DNS1=1.1.1.1
DNS2=2.2.2.2
请帮忙
【问题讨论】:
您可以使用如下Awk 语句,
awk 'NR==1||NR==2{$0="DNS"NR"="$0; print}' file1 > file2
我正在使用awk 内置变量NR 跟踪行号1 和2,并将字符串DNS 添加到行号并将内容打印到file2。
【讨论】:
@catchvenki:try:与 Inian 的好解决方案略有不同(但灵感来自 Inian 的代码)。
awk 'FNR==1||FNR==2{print "DNS"FNR"="$0}' Input_file > Output_file
我直接在这里打印行,尽管将它们带到 $0 然后打印,然后在打印所有行后将它们放入 Output_file。
【讨论】:
awk 中的另一个:
$ awk '$0="DNS" ++i "=" $0; NR==2{exit}' file
DNS1=1.1.1.1
DNS2=2.2.2.2
解释:
$0="DNS" ++i "=" $0 修改 $0 通过在开头添加文本并将放置结果用于隐式打印NR==2{exit}在第二条记录输出后退出【讨论】: