• 和管道符有关的命令


    和管道符有关的命令

    cut命令

    用来截取某一个字段

    语法:cut -d ‘分隔字符’ [-cf] n(这里的n是数字)

    • -d:后面跟分隔字符,分隔字符要用单引号括起来
    • -c:后面接的是第几个字符
    • -f:后面接的是第几个字段(区块)
    [root@centos-01 ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1,2
    root:x
    bin:x
    [root@centos-01 ~]# cat /etc/passwd |head -2 |cut -c 1-4
    root
    bin:

    sort命令

    sort用做排序。如果sort不加任何选项,则从首字符向后,依次按ASCII码值进行比较,最后按升序输出。

    语法:sort [-t 分隔符] [-kn1,n2] [-nru](这里的n1 < n2)

    • -t 分隔符:作用跟cut的-d一个意思
    • -n:使用纯数字排序
    • -r:反向排序
    • -u:去重复
    • -kn1,n2:由n1区间排序到n2区间,可以只写-kn1,即对n1字段排序
    [root@centos-01 ~]# sort /etc/passwd
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    bin:x:1:1:bin:/bin:/sbin/nologin
    chrony:x:998:996::/var/lib/chrony:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    dbus:x:81:81:System message bus:/:/sbin/nologin
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    games:x:12:100:games:/usr/games:/sbin/nologin
    halt:x:7:0:halt:/sbin:/sbin/halt
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    nobody:x:99:99:Nobody:/:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    polkitd:x:999:997:User for polkitd:/:/sbin/nologin
    postfix:x:89:89::/var/spool/postfix:/sbin/nologin
    root:x:0:0:root:/root:/bin/bash
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
    [root@centos-01 ~]# head /etc/passwd > 1.txt
    [root@centos-01 ~]# sort 1.txt 
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    halt:x:7:0:halt:/sbin:/sbin/halt
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    root:x:0:0:root:/root:/bin/bash
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    sync:x:5:0:sync:/sbin:/bin/sync
    [root@centos-01 ~]# sort -r 1.txt 
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    halt:x:7:0:halt:/sbin:/sbin/halt
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    bin:x:1:1:bin:/bin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin

    wc命令

    用于统计文档的行数、字符数、词数,常用的选项为:

    • -l:统计行数
    • -m:统计字符数
    • -w:统计词数
    • wc不跟任何选项,直接跟文档,则会把行数、词数、字符数依次输出。
    [root@centos-01 ~]# wc -l 1.txt 
    10 1.txt
    [root@centos-01 ~]# wc -m 1.txt 
    385 1.txt
    [root@centos-01 ~]# ls
    1.txt  anaconda-ks.cfg
    [root@centos-01 ~]# vim 2.txt
    [root@centos-01 ~]# wc -m 2.txt 
    10 2.txt
    [root@centos-01 ~]# cat -A 2.txt 
    abcd$
    ,;.?$

    每行末尾的隐藏字符$也算在字符统计中。

    [root@centos-01 ~]# wc -w 2.txt 
    2 2.txt

    uniq命令

    去重复的行,使用uniq的前提是需要先给文件排序,否则不是相邻的两行无法去重。

    • -c:统计重复的行数,并把行数写在前面。
    [root@centos-01 ~]# vim 2.txt 
    [root@centos-01 ~]# cat 2.txt 
    abcd
    ,;.?
    abcd
    abcd
    [root@centos-01 ~]# uniq 2.txt 
    abcd
    ,;.?
    abcd
    [root@centos-01 ~]# sort 2.txt 
    ,;.?
    abcd
    abcd
    abcd
    [root@centos-01 ~]# sort 2.txt |uniq
    ,;.?
    abcd
    [root@centos-01 ~]# sort 2.txt |uniq -c
          1 ,;.?
          3 abcd
    

    tee命令

    后跟文件名,类似于重定向“>”,但是比重定向多了一个功能,在把文件写入后面所跟的文件中的同时,还显示在屏幕上。

    • -a:追加重定向,类似于“>>”。不加“-a”选项,是覆盖重定向,类似于“>”。
    [root@centos-01 ~]# ls
    1.txt  2.txt  anaconda-ks.cfg
    [root@centos-01 ~]# sort 2.txt |uniq -c
          1 ,;.?
          3 abcd
    [root@centos-01 ~]# sort 2.txt |uniq -c > a.txt
    [root@centos-01 ~]# cat a.txt 
          1 ,;.?
          3 abcd
    [root@centos-01 ~]# sort 2.txt |uniq -c |tee a.txt
          1 ,;.?
          3 abcd
    [root@centos-01 ~]# cat a.txt 
          1 ,;.?
          3 abcd
    [root@centos-01 ~]# sort 2.txt |uniq -c |tee -a a.txt
          1 ,;.?
          3 abcd
    [root@centos-01 ~]# cat a.txt 
          1 ,;.?
          3 abcd
          1 ,;.?
          3 abcd
    

    tr命令

    替换字符,常用来处理文档中出现的特殊符号,如DOS文档中出现的^M符号。常用的选项有两个:

    • -d:删除某个字符,-d后面跟要删除的字符
    • -s:把重复的字符去掉

    最常用的就是把小写变大写:tr '[a-z]' '[A-Z]'

    [root@centos-01 ~]# echo "centos" |tr '[cos]' '[COS]'
    CentOS
    [root@centos-01 ~]# echo "sdut" |tr '[a-z]' '[A-Z]'
    SDUT

    替换、删除、去重复都是针对一个字符来讲的,有一定局限性。

    split命令

    切割文档,常用选项:

    • -b:依据大小来分割文档,单位为byte
    • -l:依据行数来分割文档
    [root@centos-01 ~]# cat a.txt 
          1 ,;.?
          3 abcd
          1 ,;.?
          3 abcd
    [root@centos-01 ~]# 
    [root@centos-01 ~]# 
    [root@centos-01 ~]# find /etc/ -type f -name "*conf" -exec cat {} >> a.txt ;
    [root@centos-01 ~]# du -sh a.txt 
    240K    a.txt
    [root@centos-01 ~]# mkdir test
    [root@centos-01 ~]# mv a.txt test/
    [root@centos-01 ~]# cd test/
    [root@centos-01 test]# ls
    a.  txt
    [root@centos-01 test]# split -b 10000 a.txt 
    [root@centos-01 test]# ls
    a.txt  xab  xad  xaf  xah  xaj  xal  xan  xap  xar  xat  xav  xax
    xaa    xac  xae  xag  xai  xak  xam  xao  xaq  xas  xau  xaw  xay
    [root@centos-01 test]# du -sb *
    243445  a.txt
    10000   xaa
    10000   xab
    10000   xac
    10000   xad
    10000   xae
    10000   xaf
    10000   xag
    10000   xah
    10000   xai
    10000   xaj
    10000   xak
    10000   xal
    10000   xam
    10000   xan
    10000   xao
    10000   xap
    10000   xaq
    10000   xar
    10000   xas
    10000   xat
    10000   xau
    10000   xav
    10000   xaw
    10000   xax
    3445    xay
    

    如果split不指定目标文件名,则会以xaa xab…这样的文件名来存取切割后的文件。

    [root@centos-01 test]# rm -f x*
    [root@centos-01 test]# ls
    a.txt
    [root@centos-01 test]# split -b 100k a.txt 
    [root@centos-01 test]# ls
    a.txt  xaa  xab  xac
    [root@centos-01 test]# du -sh *
    240K    a.txt
    100K    xaa
    100K    xab
    40K xac
    [root@centos-01 test]# rm -f x*
    [root@centos-01 test]# split -b 100k a.txt tmp.
    [root@centos-01 test]# ls
    a.txt  tmp.aa  tmp.ab  tmp.ac
    [root@centos-01 test]# rm -f tmp*
    [root@centos-01 test]# split -l 2000 a.txt 
    [root@centos-01 test]# ls
    a.txt  xaa  xab  xac  xad
    [root@centos-01 test]# wc -l *
      6085 a.txt
      2000 xaa
      2000 xab
      2000 xac
        85 xad
     12170 总用量
    
  • 相关阅读:
    linux+apache+nginx实现,反向代理动静分离
    apache编译安装php后需要注意以下配置
    nginx的gzip压缩功能
    linux+nginx+mysql+php环境下,安装ecshop
    LeetCode 328:奇偶链表 Odd Even Linked List
    LeetCode 160: 相交链表 Intersection of Two Linked Lists
    LeetCode 203:移除链表元素 Remove LinkedList Elements
    LeetCode 142:环形链表 II Linked List Cycle II
    LeetCode 141:环形链表 Linked List Cycle
    围观微博网友发起的美胸比赛学习爬取微博评论内容
  • 原文地址:https://www.cnblogs.com/Genesis2018/p/9079765.html
Copyright © 2020-2023  润新知