【问题标题】:find all values sequentially from given to target value in columns, bash从给定到列中的目标值顺序查找所有值,bash
【发布时间】:2014-05-24 23:18:44
【问题描述】:

我有一个 data.txt 文件

1   2    3     4       5       6
cat data.txt
17 245 1323 17.7777 10.2222 61.1111
19 232 1232 19.9999 19.9999 68.8888
13 133 1233 13.3333 13.3333 63.3333
17 177 1678 17.7777 17.7777 69.9999
12 122 2325 12.2222 11.333  64.4444
18 245 1323 18.8888 12.4444 68.8888
12 222 1222 12.2222 19.9999 61.1111 
14 245 1323 14.4444 13.5555 68.8888

我想从column 4 中的12.222218.8888 按顺序查找所有值。 答:

echo ${minValsCol4[@]}
12.2222 13.3333 14.4444 17.7777 18.8888

以及从column 6 中的63.333368.8888 的值。 答:

echo ${minValsCol6[@]}
63.3333 64.4444 68.8888

awk 中的任何解决方案? 谢谢。

【问题讨论】:

标签: bash awk find sequence


【解决方案1】:

使用awksort -nu

awk -v col=4 -v start=12.2222 -v end=18.8888 '$col>=start && $col<=end{
              print $col}' data.txt | sort -nu

12.2222
13.3333
14.4444
17.7777
18.8888

【讨论】:

  • 哎呀!!几乎相同的想法和实现!!,+1,我的有待删除......
  • 同上。我的是sort -unk4,4 file | awk -v low='12.2222' -v high='18.8888' '$4&gt;high{exit};$4&gt;=low{print $4}'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多