gpt4 book ai didi

regex - 将 bash 数组元素传递给循环内的 awk 正则表达式

转载 作者:行者123 更新时间:2023-11-29 08:56:29 26 4
gpt4 key购买 nike

我正在尝试通过遍历 bash 数组的元素来使用 awk 搜索文件。这就是我目前正在做的事情

myarray[1] = 441
myarray[2] = 123

for i in "${myarray[@]}"
do
awk '{if ($4 == '"$i"') print $0}' myfile.txt > newfile.txt
done

是否可以通过这种方式在 awk 中访问 bash 数组的元素?

最佳答案

这不是将 shell 变量(或 BASH 数组元素)传递给 awk 的正确方法。将它与 -v 选项一起使用:

myarray=(441 123)

for i in "${myarray[@]}'"; do
awk -v i="$i" '$4 == i' myfile.txt > newfile.txt
done
  • -v i="$i" 使 shell 变量 $iawk 中作为 awk 变量 i 可用>
  • $4 == i 等同于 {if ($4 == i) print $0} 因为 print $0 是默认操作

关于regex - 将 bash 数组元素传递给循环内的 awk 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25448729/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com