【问题标题】:Printing a string in awk在 awk 中打印字符串
【发布时间】:2014-03-22 22:39:20
【问题描述】:

我在使用 awk 打印时遇到问题,因为我是新手。

这是代码:

nm $1 >file1 
nm $2 >file2
awk '{print $(NF)}' file1 | sort -u >one
awk '{print $(NF)}' file2 | sort -u >two

var1=$(grep -Fxf two one)

(代码正在查找两个文件中相似的符号(函数)。它将两个文件中相同的字符串保存到 var1)

我需要做的就是获取第一个参数(输入文件),打印它,获取第二个参数并打印它,然后打印 var1,所有这些都在同一行。输出应如下所示:

 argument1 -> argument2 (first line from var1)
 argument1 -> argument2 (second line from var1)
 .
 .
 .
 argument1 -> argument2 (last line from var1)

谢谢

【问题讨论】:

    标签: bash shell printing


    【解决方案1】:

    var1 读取每一行并使用循环打印:

    while read line; do
      echo "$1 -> $2" "${line}"
    done <<<"${var1}"
    

    &lt;&lt;&lt; 被称为here strings

    【讨论】:

      【解决方案2】:

      这就是我重构你的脚本的方式:

      while read -r line; do
         echo "$1 -> $2 ($line)"
      done < <(grep -Fxf <(nm "$1"|awk '{print $(NF)}') <(nm "$2"|awk '{print $(NF)}'|sort -u))
      

      【讨论】:

        猜你喜欢
        • 2017-02-15
        • 2022-01-01
        • 2019-10-17
        • 2021-08-05
        • 1970-01-01
        • 1970-01-01
        • 2021-12-26
        • 2016-01-02
        • 1970-01-01
        相关资源
        最近更新 更多