【发布时间】:2015-02-23 21:11:09
【问题描述】:
我有一个名为“mywords”的文本文件,其中包含此信息
A
A's
AA's
AB's
ABM's
...
它有 1000 行,我只想排序前 100 行。其余线路应保持原位。只有一列单词。如何使用 unix 命令执行此操作?
【问题讨论】:
标签: shell sorting unix terminal
我有一个名为“mywords”的文本文件,其中包含此信息
A
A's
AA's
AB's
ABM's
...
它有 1000 行,我只想排序前 100 行。其余线路应保持原位。只有一列单词。如何使用 unix 命令执行此操作?
【问题讨论】:
标签: shell sorting unix terminal
(head -100 mywords|sort;tail -n +101 mywords) > mywords.100sorted
【讨论】:
(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
【讨论】: