gpt4 book ai didi

linux - bash 脚本的复杂操作

转载 作者:太空宇宙 更新时间:2023-11-04 11:43:08 24 4
gpt4 key购买 nike

我得到一个包含几行的文档,其中一些包含下面的字符串,我需要做的是显示所有其他行(已经被 grep 过滤),并且每当这个字符串出现时将数字乘以 2500并在同一列中显示结果。

-other columns- 只是一个占位符,用来证明之前和之后存在其他列:value=All 968.0

-other columns-  value=All 968.0 -other columns- 

这可能吗?

我试过以下但它只返回带有数学运算的列,并在所有行中进行运算,我只想在第六列中包含“value=All”的行中进行运算。

grep wordFilter file.txt | sed -e 's/wordsToDelete//g' | if grep -q value=All ; then awk '{print $7*2500}' ; fi

这是重要的部分:

 if grep -q value=All ; then awk '{print $7*2500}' ; fi

最佳答案

代码使用 grep/awk 管道来执行过滤。但是,grep -q 将消耗管道的所有输出,并且没有数据进入 awk。考虑

# Print just lines with value=A::
grep wordFilter file.txt | sed -e 's/wordsToDelete//g' | awk '/value=ALL/ {$4 = $4*2500 ; print }'

# Or print all lines
grep wordFilter file.txt | sed -e 's/wordsToDelete//g' | awk '/value=ALL/ {$4 = $4*2500 } { print }'

根据示例输入,值似乎在第 4 列,因此 $4 而不是 $7

关于linux - bash 脚本的复杂操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58653039/

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