【问题标题】:Append values from one file to another using sed or awk使用 sed 或 awk 将值从一个文件附加到另一个文件
【发布时间】: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

请帮忙

【问题讨论】:

  • 你尝试了什么?

标签: bash awk sed


【解决方案1】:

您可以使用如下Awk 语句,

awk 'NR==1||NR==2{$0="DNS"NR"="$0; print}' file1 > file2

我正在使用awk 内置变量NR 跟踪行号12,并将字符串DNS 添加到行号并将内容打印到file2

【讨论】:

    【解决方案2】:

    @catchvenki:try:与 Inian 的好解决方案略有不同(但灵感来自 Inian 的代码)。

     awk 'FNR==1||FNR==2{print "DNS"FNR"="$0}'    Input_file > Output_file
    

    我直接在这里打印行,尽管将它们带到 $0 然后打印,然后在打印所有行后将它们放入 Output_file。

    【讨论】:

      【解决方案3】:

      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}在第二条记录输出后退出

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-03-19
        • 1970-01-01
        • 2018-12-06
        • 2019-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多