Linux常用文件处理命令
9个常用的数据处理:head、tail、wc、grep、tr、sort、sed、cut、uniq、awk
注:若对处理后的数据进行新的文件保存,可用‘>’
例如: sort -n -k 1 -t ‘,’ a.txt > b.txt
-
文件排序
sort -n -k 1 -t ‘,’ a.txt
-
提取文件的前n行
head -n a.txt
-
提取文件的后n行
tail -n a.txt
-
对文件内容打乱顺序
sort -R a.txt
-
取出指定列字段
awk -F, '{print $n}’ a.txt > b.txt
-
根据某一列去重,保留一行
awk -F “,” ‘!a[$1]++’ a.txt > b.txt
-
根据某一列去重,不保留
awk -F ‘,’ ‘{sum[$1]+=1;if(sum[$1]==1)list[$1]=$0}END{for(i in sum) if(sum[i]==1) print list[i];}’ aaa.txt
-
将某一列取出变成一行,以逗号‘,’分隔。适用于字符串
#使用xargs命令干掉换行符
awk ‘{print $2}’ user1.txt |xargs
#使用tr命令干掉换行符
awk ‘{print $2}’ user1.txt |tr “\n” " "
#使用sed命令将空格替换成‘,’
awk ‘{print $2}’ user1.txt |xargs |sed ‘s/ /","/g’
#需要引号的话,开头和结尾少,执行echo ‘"’awk '{print $2}' user1.txt |xargs |sed 's/ /","/g'
’"’ -
根据某列值包含指定字符,删除一行(模糊匹配)
#可将第9列不包含“qwe”的数据输出到b文件
awk -F, ‘{if($9!~“qwe”) print $0 }’ a.txt > b.txt