1.
对1个文件进行 按域,并做唯一性排序:
sort -u -t"," -k11n a.log
发现这个和
sort -t"," -k11n a.log|sort -u
结果相差很大,前面的结果很有问题;
2.
在用sort时,源数据为\t分隔,若中间出现某域数据为空,如果用awk查看出的域分隔是一致的,但sort将忽略,
比如a\tb\t\tc, awk识别出是4个域(在无-F特别指出情况下),而sort认为是3个域,
导致用-k4 失效;
解决方法是指定sort的域分隔符号为\t, 在这里要注意shell的单引号和双引号的区别
sort -t$'\t'
3.1.2.4 ANSI-C Quoting
Words of the form $'
string'
are treated specially. The
word expands to string, with backslash-escaped characters replaced
as specified by the ANSI C standard. Backslash escape sequences, if
present, are decoded as follows
注意上述原文, 可以对转义符用$''这样进行表示
阅读(427) | 评论(0) | 转发(0) |