Chinaunix
标题:
sort排序空格造成列识别不正确
[打印本页]
作者:
zcsgamer
时间:
2014-05-30 14:34
标题:
sort排序空格造成列识别不正确
假设如下数据
2 3 3
1 "2 1" 4
执行命令
sort -k 3n a
输出
1 "2 1" 4
2 3 3
想得到的结果
2 3 3
1 "2 1" 4
我知道这是空格的原因,想用复杂字符串替代空格,然后用-t参数处理,但-t后面只能接一个字符,这样在复杂的文本中,又很容易存在相同的字符,想用高位ASCII字符,似乎又不支持。
把“2 1”看作是一个整体,然后排序,sort能不能实现这样的功能,如果不能,有没有其他可实现的方案?
作者:
q1208c
时间:
2014-05-30 14:54
一般我都是用 "|" 来做分隔的.
作者:
seesea2517
时间:
2014-05-30 16:43
回复
1#
zcsgamer
这是个麻烦事,sort cut 都有遇到这麻烦事,只好用awk了。
作者:
tgwz88
时间:
2014-05-30 21:56
head -1 o | awk '
BEGIN{FS=""}
{NF++;print}
'&&tail -1 o
复制代码
不知道这样合不合要求?
作者:
yestreenstars
时间:
2014-05-31 00:12
awk for 4.0
awk -vFPAT='"[^"]+"|[^ ]+' '{a[NR,b[$3]=$3]=$0}END{for(i=0;i++<asort(b);)for(j=0;j++<NR;)if(a[j,b[i]]!="")print a[j,b[i]]}'
复制代码
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2