
awk排序方法
文件2.txt
000001 | 10
000001 | 20

000002 | 30
000002 | 15
000000 | 2
需要按$ 2(FS = |)排序

1)使用系统资源,按外壳排序
awk -F'|' '{print $ 0 | “ sort -n -k1.8”}'2.txt
Parse: 通过管道将awk的输出传递给系统的shell命令(排序). “ print $ 0”可能会重复执行多次,并且输出将临时存储在管道中. 然后将一起执行“ sort -n -k1.8”.
参考:

2)通过asotri和asort的内置功能进行排序
awk -F'|' '{a [$ 2] = $ 0} END {l = asorti(a,b);为(i = 1; i <= l; i ++)打印[b [i]]}'2.txt
分析: asorti(a,b)对数组a的索引进行排序并将其分配给b(b是由数组a的索引形成的数组),该数组返回数组的长度awk数组长度,并检索该数组通过for循环,将b的值并输出数组a的值作为a数组的下标
请注意,asorti是数组下标的字典排序(升序)awk数组长度,类似于排序默认排序.

示例: 文件3.txt
awk -F'|' '{a [$ 2] = $ 0; b [i] = $ 2; i ++} END {l = asort(b);为(j = 1; j <= l; j ++)打印[b [j]]}'2.txt
Parse: sort(a)对数组的值进行排序并返回数组的长度. 将记录保存到数组a,使用$ 2作为数组索引,使用数组b存储$ 2的值,并按asort对数组b的值进行排序. 然后将b的值用作a数组的索引以输出结果.
注意: asort正在对数组值进行排序(升序). 类似于n排序的数字排序
摘要: asort和asorti的使用缺乏灵活性,对于上述两个示例,如果$ 2具有重复值,则将出现相应的问题. 使用管道使用系统资源进行排序(排序)相对更加灵活.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-154433-1.html
我们烊烊最棒了
今天击沉一艘
伊拉克人民还是会选举代表本国利益的人上台
岂能被个别台独份子所左右