如何使用catch(Exception e) { }
catch(IOException e { }
命令对!!
分隔的记录进行排序?
for File1
sort
预期产出
1!!2!!3
2!3!!3!!1
3!!2!!2
然后
2!3!!3!!1
3!!2!!2
1!!2!!3
结果:
sort -t \!\! -k 3 file1
为什么它不起作用?
答案 0 :(得分:1)
sort -t
中不允许使用多字符分隔符,但您可以使用:
sort -t '!' -k1 file
1!!b!!c
2!!f!!w
4!!e!!e
编辑:如果!
可以存在于数据中,您可以使用此技巧:
sed 's/!!/\x06/g' file | sort -t $'\x06' -k1 | sed 's/\x06/!!/g'
1!!b!!c
2!!f!!w
4!!e!!e
EDIT2:要在单一命令中执行此操作,请使用awk
:
awk -F '!!' -v k=1 '{a[$k,$0]=$0}
END{asort(a, b, "@ind_num_asc"); for (i in b) print b[i]}' file