在 For 循环中计算算术并另存为变量

Evaluate Arithmetic and Save as Variable in For Loop

提问人:JVGen 提问时间:8/28/2023 最后编辑:Ed MortonJVGen 更新时间:8/29/2023 访问量:46

问:

我正在尝试在变量中设置变量,该变量将用于评估数学方程式,然后用于使用 修改 tsv 的行值。变量不需要保留在 for 循环之外,并且每次循环迭代都会覆盖它们。我是一个新手,我已经拼凑了其他论坛的答案来制作这个代码:请指出是否有更好的方法来做这样的事情。for loopawk

我的代码当前在该步骤中失败awk

  1. awk 生成一个输出文件,但它是空的。命令行未完成,就好像在等待其他代码一样。
for file in *.tsv
do
  declare -i A=$(wc -l < $file) ;
  print $A ;
  declare -i B=$A/10 ;
  print $B ;
  awk -v B="$B" 'BEGIN { FS = OFS = "\t" }
  {$2 = $2/(B); print}' $file > example.tsv
done
for 循环 变量 math zsh

评论

1赞 Ted Lyngmo 8/28/2023
你期待做什么?在 bash 中执行命令,这意味着必须有一个名为 (where is expanded) 的命令才能成功。不确定。declare -i B=$($A/10) ;$(...)...$A/10$Azsh
1赞 JVGen 8/28/2023
declare -i B=$($A/10)我想将变量 B 设置为 A/10 的数值。因此,如果 A 为 50,则 B=5 (50/10)
1赞 Ted Lyngmo 8/28/2023
好的,你在剧本的顶部有一个 she-bang 吗? 东西?在你会做,然后如果是,就会变成 .#!/bin/...bashdeclare -i B=$((A/10))$A50B5
2赞 shellter 8/29/2023
“命令行没有完成,好像在等待其他代码。”它正在等待指定文件名(或者等待您通过键盘手动向 stdin 键入数据,最后使用 Ctrl-D 关闭流)。std 模式是 。祝你好运!awk -v x="y" '{code}' file > outputFile
1赞 Ted Lyngmo 8/29/2023
@JVGen 如果您愿意,您可以写下答案并回答自己的问题。这可能会帮助将来有类似问题的其他人,因此我们鼓励这样做。

答: 暂无答案