【sort_uniq_join_cut_paste_split】

【【【sort 介 绍】】】
sort -cmu -o output_file [other options] +pos1 +pos2 input_files
    -c 测试文件是否已经分类。        $ sort -c file
    -m 合并两个分类文件。
    -u 删除所有复制行。        $ sort -u file  || $ cat file|awk '{print $2}'|sort -u
    -o 存储sort结果的输出文件名    $ sort -o out_file file    || $ sort file -o file
    [other options]
    -R 根据随机 hash 排序
    -f 忽略字母大小写
    -i 只排序可打印字符
    -b 每行从第一个非空字符开始比较。
    -V 在文本内进行自然版本排序
    -n 指定分类是域上的数字分类--从小到大    $ sort -n file
    -r 对分类次序或比较求逆。        $ sort -r file
    -t 域分隔符;用非空格或 tab键分隔域。    $ sort -n -t: -k 2 file
    -k n :n为域号。用此域号分类排序。    $ sort -k 2 file --第二域第三个字符开始比较
    n :n为域号。在分类比较时忽略此域,一般与 -k一起使用。
    post1 传递到m,n。m为域号,n为开始分类字符数;例如 4,6意即以第5域分类,从第 7个字符开始。
                    $ sort -k 4,6 file

【【【uniq 介 绍】】】
uniq [option] file  【注意文件里的空格!tab!空行!!】
    -u 只显示不重复的行。
    -d 只显示有重复的行(每种重复行只显示其中一行)
    -c 打印每一重复行出现次数。
    -f n:n为数字,前 n个域被忽略,从n+1个字段开始分组排序
    -s n:避免比较前n个字符

【【【join 介 绍】】】
uniq [option] file1 file2
      -a 文件编号的值可以是1 或2,分别对应文件1 和 文件2。
         此选项用于根据指定文件编号输出不成对的行目。
      -e 将缺失的输入区块替换为指定字符
      -i 比较时忽略大小写
      -j 域,等于"-1 域 -2 域"
      -o 格式,按照指定格式构造输出行    $ join -o 1.2 2.2 file1 file2 --file1的2列,file2的2列
      -t 字符,使用指定字符作为输入和输出的分隔符。-t ':' 使用冒号作为分隔符
      -v FILENUM,like -a FILENUM, but suppress joined output lines
      -1 FIELD,join on this FIELD of file 1
      -2 FIELD,join on this FIELD of file 2

内连接(inner join)                格式:join <FILE1> <FILE2>
左连接(left join, 左外连接, left outer join)    格式:join -a1 <FILE1> <FILE2>
右连接(right join, 右外连接,right outer join)    格式:join -a2 <FILE1> <FILE2>
全连接(full join, 全外连接, full outer join)    格式:join -a1 -a2 <FILE1> <FILE2>

    指定输出字段:
    -o <FILENO.FIELDNO> ..
    其中FILENO=1表示第一个文件,FILENO=2表示第二个文件,FIELDNO表示字段序号,从1开始编号
    -o 1.1 1.2 2.2 表示输出第一个文件的第一个字段、第二个字段,第二个文件的第二个字段

【【【cut 介 绍】】】
cut [option] file1 file2
    -b, --bytes=列表    只选中指定的这些字节
    -c, --characters=列表    只选中指定的这些字符:-c1,5-7(5到7),-c1-50(前50)
    -d, --delimiter=分界符    使用指定分界符代替制表符作为区域分界
    -f, --fields=列表    只选中指定的这些域;-f1,10-12(第1域,第10域到第12域。)
                并打印所有不包含分界符的行,除非-s 选项被指定
    -n            (忽略)
        --complement    补全选中的字节、字符或域
    -s, --only-delimited    不打印没有包含分界符的行

【【【paste 介 绍】】】
paste [option] file1 file2---------并列输出
    -d, --delimiters=列表    改用指定列表里的字符替代制表分隔符,两个文件的链接符
    -s, --serial        不使用平行的行目输出模式,而是每个文件占用一行。文件1为第一行,文件2为第二行
file1:
1       一月
2       二月
3       三月
4       四月
5       五月
file2:
1       January
2       February
3       March
4       April
$ paste  file1 file2
1       一月    1       January
2       二月    2       February
3       三月    3       March
4       四月    4       April
5       五月

$ paste  -d'-' file1 file2
1       一月-1       January
2       二月-2       February
3       三月-3       March
4       四月-4       April
5       五月-

$ paste  -s file1 file2
1       一月    2       二月    3       三月    4       四月    5       五月   
1       January    2       February    3       March    4       April   


【【【split 介 绍】】】
split -size infile outfile
    将输入内容拆分为固定大小的分片并输出到"前缀aa"、"前缀ab",...;
    默认以 1000 行为拆分单位,默认前缀为"x"。如果不指定文件,或
    者文件为"-",则从标准输入读取数据。
    长选项必须使用的参数对于短选项时也是必需使用的。
    -a, --suffix-length=N    指定后缀长度为N (默认为2)
    -b, --bytes=大小    指定每个输出文件的字节大小    $ split -b 400 infile outfile
    -C, --line-bytes=大小    指定每个输出文件里最大行字节大小
    -d, --numeric-suffixes     使用数字后缀代替字母后缀    $ split -l 6 -d infile outfile
    -l, --lines=数值    指定每个输出文件有多少行    $ split -l 6 infile outfile
$ split [-abcdl] [size] infile outfile



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值