【问题标题】:Sort only the first 100 lines of a file仅对文件的前 100 行进行排序
【发布时间】:2015-02-23 21:11:09
【问题描述】:

我有一个名为“mywords”的文本文件,其中包含此信息

  A
  A's
  AA's
  AB's
  ABM's
  ...

它有 1000 行,我只想排序前 100 行。其余线路应保持原位。只有一列单词。如何使用 unix 命令执行此操作?

【问题讨论】:

    标签: shell sorting unix terminal


    【解决方案1】:
    (head -100 mywords|sort;tail -n +101 mywords) > mywords.100sorted
    

    【讨论】:

      【解决方案2】:
      (awk 'NR<=100' test.txt | sort;awk 'NR > 100' test.txt) > answer.txt  
      

      NR 表示行数

      awk 非常强大,它提供了许多内置变量来解决相关问题。

      例子:

      用于分隔字段的FS正则表达式;也可以通过选项 -Ffs 设置。

      当前记录的NF个字段数

      NR 当前记录的序号

      当前文件中当前记录的FNR序号

      FILENAME 当前输入文件的名称

      RS 输入记录分隔符(默认换行符)

      OFS 输出字段分隔符(默认为空白)

      ORS 输出记录分隔符(默认换行符)

      参考:man awk

      【讨论】:

        猜你喜欢
        • 2019-08-18
        • 2016-05-03
        • 2012-09-14
        • 1970-01-01
        • 2013-02-10
        • 1970-01-01
        • 1970-01-01
        • 2012-08-09
        • 1970-01-01
        相关资源
        最近更新 更多