【问题标题】:How to prevent awk from sorting the array?如何防止awk对数组进行排序?
【发布时间】:2015-05-22 23:21:50
【问题描述】:

我正在尝试从 data 文本文件中提取这些行:

first
second
third
fourth
fifth
sixth

基于他们预先保存在nums文本文件中的行号:

2
6
3

我最终得到了以下 解决方案,但它给了我根据行号而不是根据nums 文件中的顺序排序的行。

$ awk  'NR==FNR{lines[$0];next } FNR in lines' nums data
second
third
sixth

但我想要实现的是下面的输出:

second
sixth
third

那么,awk 是否有任何选项可以防止/禁用它对数组进行排序?

【问题讨论】:

  • 您在第二个模式中使用FNR。您将按数字顺序获得输出。

标签: awk arrays sorting awk text-processing


【解决方案1】:

反过来处理文件:

awk 'NR == FNR { line[NR] = $0; next } { print line[$1] }' data nums

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-25
    • 2017-09-01
    • 1970-01-01
    • 2010-09-11
    • 2011-01-28
    • 2011-07-17
    • 1970-01-01
    • 2013-10-13
    相关资源
    最近更新 更多