linux - 如何在 awk 中使用 bash 命令

标签 linux bash awk

这是我的问题

我有一个文件 1,里面有一些数据

Var1.1   Var1.2   Var1.3
Var2.1   Var2.2   Var2.3
Var3.1   Var3.2   Var3.3

我有一个文件 2,我想根据上述数据进行编辑

文件 2 (1)

***pattern with Var2.1***
some text...

文件2(2)

***pattern with Var2.1***
Here I want to add Var2.2 and Var2.3
some text

我的第一个解决方案是使用 AWK,但我不知道要在其中包含 bash 命令。AWK 应该是这样的:

  • 在文件2中搜索模式
  • 当 awk 得到它时,awk 调用一个脚本,该脚本从 File1 返回想要的值。
  • 然后awk可以编辑File2

如果有更简单的方法,请不要犹豫向我解释其他可能性!

谢谢!

最佳答案

这就是我从 awk 中运行外部命令以对字符串进行 base64 解码的方式:

cmd = "/usr/bin/base64 -i -d <<< " $2 " 2>/dev/null"
while ( ( cmd | getline result ) > 0 ) { }
close(cmd)
split(result, a, "[:=,]")
name=a[2]

或许你能从中得到一些启发……

关于linux - 如何在 awk 中使用 bash 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12211638/

相关文章:

linux - Debian平台下如何使用pm2启动命令?

linux - 运行 shell 命令,不要等待返回

linux - 连接丢失时自动关闭 PuTTY

shell - 如何使用 shell 脚本根据文件第二列中的值对值进行排序?

linux - Bash:tail 的语法高亮显示(使用 awk)

linux - 当从 Linux 服务器中的 sqlplus 插入时,Windows-1252 (80-9F) 控制字符在 oracle db 中插入为 �

c - 不使用时删除posix共享内存?

bash - 计算在线 session 的总时间

linux - Yum 失败条件

mysql - 连续从linux中的FIFO管道将数据插入mysql表数据