gpt4 book ai didi

linux - 我在 bash 代码中使用 awk 语句时遇到一些困难

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:19:24 24 4
gpt4 key购买 nike

我正在尝试检查某些值(DIC、IC、RNDIC)是否在文本文件的第一行但不在第一列。在下面缝制所有细节。并不是说文本文件中的每个字段都以表格形式列出。

文件.txt

NO   DIC   IC   RNDIC   FI   BO   CF
---
1 2 3 4 5 6

这是我必须处理这个文件的代码:

type=$(awk 'NR==1 {
for (i = 1; i <= NF; i++)
{
if (i != 1 && ($i == "DIC" || $i == "IC" || $i == "RNDIC"))
print "1"
}
}' $PWD/file.txt)

if [[ $type == "1" ]]; then
# rest of the code is irrelevant
fi

echo $type

问题是在$type初始化后,它从不进入if语句。原因是因为$type实际上是1 1而不是1。我意识到我犯的错误是 for 循环中的 if 语句,但不知道如何修复它。有什么建议么?谢谢。

如果需要进一步解释,请告诉我。

最佳答案

你可以在打印一次1后调用exit:

type=$(awk 'NR==1 {
for (i = 1; i <= NF; i++) {
if (i != 1 && ($i == "DIC" || $i == "IC" || $i == "RNDIC")) {
print "1"
exit
}
}
}' $PWD/file.txt)

关于linux - 我在 bash 代码中使用 awk 语句时遇到一些困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24659334/

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