gpt4 book ai didi

awk - 从另一个文件的 column2 中提取所有负数

转载 作者:行者123 更新时间:2023-12-01 23:28:28 27 4
gpt4 key购买 nike

我有一个很长的数据文件“file.dat”,有两列。在这里,我放了很小一部分。我想将 column2 中的所有负数提取到另一个文件中,让我们说 file2.dat 并且类似地将同一 column2 中的正数提取到另一个文件 file3.dat

    4.0499   -7.1787
4.0716 -7.1778
4.0932 -7.1778
4.1148 -7.1785
4.1365 -7.1799
4.1581 -7.1819
4.1798 -7.1843
4.2014 -7.1868
4.2231 -7.1890
4.2447 -7.1902
4.2663 -7.1900
4.2880 -7.1886
<-------Note: this kind of break is also there in many places
0.0000 2.1372
0.0707 2.1552
0.1414 2.2074
0.2121 2.2864
0.2828 2.3791
0.3535 2.4646
0.4242 2.5189
0.4949 2.5207
0.5655 2.5098

负数 file2.dat 的预期结果

 -7.1787
-7.1778
-7.1778
-7.1785
-7.1799
-7.1819
-7.1843
-7.1868
-7.1890
-7.1902
-7.1900
-7.1886

正数 file3.dat 的预期结果

2.1372
2.1552
2.2074
2.2864
2.3791
2.4646
2.5189
2.5207
2.5098

我找到的最近的解决方案

由于我缺乏知识,此解决方案对我不起作用。

http://www.unixcl.com/2009/11/awk-extract-negative-numbers-from-file.html

最佳答案

使用 awk 非常简单.您只需检查第 2 列中的值并根据其值将其写出,例如

awk '$2<0 {print $2 > "negative.dat"} $2>=0 {print $2 > "positive.dat"}' file

awk使用的两条规则在哪里以上是:

  • $2<0 {print $2 > "negative.dat"} ,如果第2列的值小于0,写入negative.dat ,
  • $2>=0 {print $2 > "positive.dat"} ,如果第2列的值大于等于0,写入"positive.dat" .

示例使用/输出

file 中有您的示例数据(没有你的评论),运行上面的结果会导致:

$ cat negative.dat
-7.1787
-7.1778
-7.1778
-7.1785
-7.1799
-7.1819
-7.1843
-7.1868
-7.1890
-7.1902
-7.1900
-7.1886

正值在:

$ cat positive.dat
2.1372
2.1552
2.2074
2.2864
2.3791
2.4646
2.5189
2.5207
2.5098

关于awk - 从另一个文件的 column2 中提取所有负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66793461/

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