合并与分割(sort uniq join cut paste split)
时间:2007-06-27 来源:ystar925
sort
-c 测试文件是否分类
-m 合并2个分类文件
-u 删除所有复制行
-o 存储sort结果的输出文件
-b 使用域进行分类时,忽略第一个空格
-n 指定分类是域上的数字分类
-t 域分割赋;用非空格或tab分割域
-r 对排序求逆
+n n为域号,使用此域号开始分类。
使用举例:
sort 1.txt >2.txt
测试是否分类:
sort -c 1.txt
sort -t: video.txt
sort -t: -r 1.txt
sort -t: +1 1.txt
sort -t: +3n 1.txt n表明域3是数值域啊。要不加n就按字符来处理了
sort -u 1.txt -u unique的意思,当然唯一,如果排序结果有重复,当然只显示一行了。
sort -t: -r -k4 -k1 1.txt
sort +1.2 1.txt按第一域左边第三个字符开始分类。
sort -t| -m 1.txt 2.txt
uniq
-u 只显示不重复行
-d 只显示有重复行,每种只显示一行
-c 打印每一重复行出现的次数
-f n为数字,前n个域被忽略
join
an n为数字,用于从文件n中显示不匹配行。
j n.m n为文件号,m为域号
t 域分割符
cut
-c 指定剪切字符数
-f 指定剪切域数
-d 指定域分割符
-c1,5-7 剪切第一个字符,然后是第5到7个字符。
-f1,5-7 同上
paste
-d 指定域分割符
-s 将每个文件合并成行而不是按行粘贴。
paste -s 1.txt
将1.txt合成一行。
paste -s 1.txt 2.txt
也是一个文件一行,加个wc统计是2行。
ls|paste 这样输出就是一列了,
ls -l |awk '{print $9}' 这2个结果差不多。
ls|paste -d" " - - -
ls |paste -d" " -
结果是不一样的。你试试看。
split
把大文件分割成小文件
split -2 1.txt
相关阅读 更多 +