脚本的SPLIT文件(bash,cpp) - 列中的数字

时间:2011-08-04 18:47:18

标签: bash split awk conditional-statements

我的文件中包含一些用数字填充的列(浮点数)。我需要根据其中一列中的值拆分这些文件(可以设置为第一列)。这意味着,何时

a b c

在我的文件中,值为c fullfils 0.05<=c<=0.1,然后创建名为c的文件并复制整个列,其中满足c - 条件... 这可能吗?我可以使用bash,awk,还有c ++的东西。 我已经搜索了一些解决方案但是 - 我可以将数据排序当然只读取行的第一个数字.. 我不知道。 请非常高兴。 谢谢 简

2 个答案:

答案 0 :(得分:1)

如果我理解你的要求:

awk '{print > $3}' file ...

答案 1 :(得分:1)

正如你提到的awk,awk中的基本规则是'匹配一行(默认情况下或正则表达式,条件或行号)'和'做某事,因为你找到了匹配'。

awk使用$ 1,$ 2,$ 3等值来指示它正在查看的当前数据行中的哪一列。 $ 0指的是整条线。所以...

awk '
 BEGIN{
    afile="afile.txt"
    bfile="bfile.txt"
    cfile="cfile.txt"
 }

{
  # test c value between .05 and .1
  if ($3 >= 0.05 && $3 <= 0.1) print $0 > cfile
} inputData

请注意,我正在测试第三列的值(在您的示例中为c)。您可以使用$ 2来测试b列等。

如果您不知道我已经包含>= 0.5 && $3 <= 0.1的条件测试,那么您将有一些学习知识。

问题的形式1.我有这个输入,2。我想要这个输出。 3.(但)我得到了这个输出,4。使用此代码.... {code here} ....有更好的机会在合理的时间内得到合理的回应; - )

我希望这会有所帮助。

P.S。因为您似乎是新用户,如果您得到的答案可以帮助您,请记住将其标记为已接受,并且/或者给它一个+(或 - )作为有用的答案。