【发布时间】:2015-04-03 08:57:42
【问题描述】:
我需要从文件中提取第二列的值,而 $1 = 2 直到 $1 = 3。例如,从文件中
1 | 2.158e+06
| 2.31e+06
| 5.008e+06
2 | 693000
| 718000
| 725000
3 | 2.739e+06
| 2.852e+06
| 2.865e+06
| 2.874e+06
4 | 4.033e+06
| 4.052e+06
| 4.059e+06
我想从 $1=2 到 $1=3 提取第二列的值
693000
718000
725000
我尝试使用 awk,但我刚刚弄清楚如何提取从 $1=1 到 $2=2 的值
awk -F "|" '{if ($1>1) exit; else print $2}' foo.txt
输出
2.158e+06
2.31e+06
5.008e+06
我也试过了
awk -F "|" '{i=2; do {print $2; i++} while ($4); if ($1>i) exit}' foo.txt
但它给了我整个第二列
2.158e+06
2.31e+06
5.008e+06
693000
718000
725000
2.739e+06
2.852e+06
2.865e+06
2.874e+06
4.033e+06
有谁知道如何使用 awk 或其他命令来做到这一点?
谢谢
【问题讨论】:
-
第一个问题非常好,样本数据少,需要输出,而且......喘不过气来一些接近工作的代码!继续发帖,祝你好运。
-
@shellter 完全同意...
-
Col 1 总是排序的?
-
感谢您提供这么多优雅的答案!所有这些似乎都像一个魅力!
标签: bash loops awk while-loop