文本行中各列打乱:
awk 'BEGIN{srand()}{for(i=1;i<=NF;i++) b[rand()NF]=$i}END{for(x in b)printf "%s ",b[x]}'` data
文本行中各行打乱:
awk 'BEGIN{srand()}{b[rand()NR]=$0}END{for(x in b)print b[x]}' data
shuf -n1000 data
以a.txt作为pattern查找b.txt,实际是求2者交集:
grep -F -x -f a.txt b.txt
以a.txt作为pattern查找b.txt,显示不在a.txt中的数据,实际是求差集b-a:
grep -F -v -x -f a.txt b.txt
编码转换:
iconv -f gb18030 -t utf8 filename
以_为分隔符,第二列为键值排序,稳定排序(默认不稳定):
sort -t_ -k1,2 -s filename
对大文件进行外部排序并去重,以temp目录作为缓存:
sort -u -T temp filename
sort filename | uniq -c计数唯一的排序的记录 -d仅仅显示重复的记录 -u仅仅显示没有重复的记录
在preview中打开awk的man文档:
man -t awk | open -a Preview -f
awk和cut简单用法:
awk -F: -v 'OFS= ' '{print "all users are:",$1,$2,$3,$4,$5,$6,$7}' /etc/passwd | cut -f 1,6
wc -l 行数 -c字节数 -w字数