对 csv 中的一列值使用 bc
我有一个很长的 csv 文件,其中包含 5 列值。 如何从列中提取每个值并将该值传递给 bc 以提取其上的余弦?
我正在尝试使用 awk 提取值,但是当我尝试将每个值传递给 bc 时失败。
预先感谢您的兴趣。
罗伯托
I have a long csv file with 5 columns of values.
How can I extract every value from a column and pass this value to bc to extract a cosine on it?
I'm trying using awk to extract the values but I fail when I try to pass every single value to bc.
Thank you in advance for your interest.
Roberto
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用
(g)awk
处理csv
来计算每个字段的余弦,例如:HTH
You can process a
csv
with(g)awk
to calculate per field cosines, like:HTH
如果您只想使用 awk 和 bc,就像您在问题中所问的那样,您可以执行以下操作:
只需确保将包含例如“c(1)”的字符串通过管道传输到 bc -l。
If you just want to use awk and bc, like you've asked in your question you could do something like this:
Just make sure you pipe a string containing e.g. "c(1)" to
bc -l
.哈,晚了几分钟,尽管你的问题缺乏信息,而且尽管我写了你应该用 python 来做的事情,但我决定为了应对挑战,我将用 BASH (而不是 AWK)来做。
好吧,我的第一个解决方案确实很丑陋,而且计算量很大。这是一个更好的解决方案:
-a
标志将行转换为数组。IFS
是内部字段分隔符(请参阅man bash
)。Ha, Just a few minutes late, and although your question is lacking info, and despite what I wrote you should do it in python, I decide that for the challenge I'll do it in BASH (and NOT AWK).
OK, My first solution is indeed UGLY, and computationally expansive. Here is a nicer solution:
the
-a
flag turns the lines into arrays. TheIFS
is The Internal Field Separator (seeman bash
).