gpt4 book ai didi

linux - 使用 Awk 外部定义的变量

转载 作者:太空宇宙 更新时间:2023-11-04 04:59:16 26 4
gpt4 key购买 nike

我编写了以下几行代码:

ARRAY=($(awk 'FS = ";" {print $3}' file.txt))

LINE_CREATOR=`echo "aaaa;bbbb;cccccccc" |

'{awk -F";"};

END

for (i in ARRAY)
{

print $'${ARRAY['i']}'

}

}'`

File.txt 看起来像

1;8;3
4;6;1
7;9;2

说明:

数组包含值:3 1 2

因此循环将在数组上循环,并使用 awk 从“aaaa;bbbb;cccccccc”中提取字段 $3 $1 $2

最终的输出应该是这样的

ccccccccaaaabbbb

启动脚本时仍然出现一些错误。

最佳答案

我在这里做了一些猜测,但我认为这符合你的要求:

$ echo "aaaa;bbbb;cccccccc" | awk -F\; 'NR == FNR { n = split($0, a); next } 
{ printf "%s", a[$3] } END { print "" }' - file
ccccccccaaaabbbb

NR == FNR 表示该 block 仅针对第一个输入运行。 - 作为参数告诉 awk 首先从标准输入读取。该字符串在 FS (;) 上拆分为数组 anext 跳过脚本的其余部分。

第二个 block 仅针对第二个输入(文本文件)运行。第三个字段中的值用于打印数组 a 中的元素。

关于linux - 使用 Awk 外部定义的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38247523/

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