首页 > 代码库 > 在百度nlp实习一个月时间里用到的shell操作

在百度nlp实习一个月时间里用到的shell操作

文本行中各列打乱:

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=\t‘ ‘{print "all users are:",$1,$2,$3,$4,$5,$6,$7}‘ /etc/passwd | cut -f 1,6

 

wc -l 行数 -c字节数 -w字数