【发布时间】:2014-02-20 12:40:23
【问题描述】:
基本上现在我有一个运行一系列测试的 for 循环。测试通过后,我将结果输入到 csv 文件中:
for (( some statement ))
do
if[[ something ]]
input this value into a specific row and column
fi
done
我现在想不通的是如何将特定值输入到 csv 文件中的特定单元格中。我知道在awk 中,您可以使用以下命令读取单元格:
awk -v "row=2" -F'@' 'NR == row { print $2 }' some.csv 这将打印第二行第二列中的单元格。我需要类似的东西,除了它可以将一个值输入到特定的单元格而不是读取它。有这样的功能吗?
【问题讨论】:
-
使用那个 awk 并输出到另一个文件怎么样?
-
我认为这将花费太长时间...我正在处理包含大约 1000 个条目的 csv 文件...每次我觉得有点忙时重新创建文件...加上这个文件会不断更新
-
您也可以考虑为此使用
sed -i。如果您粘贴一些示例输入,我们可以提供一些解决方案。它只是逗号分隔还是@? -
它只用@分隔。我一直在玩 awk...到目前为止,我想出的是:
awk -F, '{$(NF+1)=hi;}1' OFS=@ test.csv > output.csv但是这只是用“hi”替换了最后一列,不知何故我也需要指定行 -
首先获取所有要更改的值,然后一次性完成所有文件更新可能是有意义的。否则,您将多次打开和读取该文件,这可能对您的用例产生影响,也可能不产生影响。