• Linux centos7 shell特殊符号、cut命令、sort_wc_uniq命令、tee_tr_split命令、shell特殊符号


    一、shell特殊符号、cut命令

    *任意字符

    [root@davery ~]# ls /tmp/*.txt
    /tmp/1.txt /tmp/2.txt /tmp/q.txt
    [root@davery ~]#

    ?任意一个字符

    [root@davery ~]# mkdir /tmp/test1
    [root@davery ~]# touch /tmp/test1 
    [root@davery ~]# ls -d /tmp/test?
    /tmp/test1
    [root@davery ~]#

    #注释字符

    [root@davery ~]# sdx=233 #assa
    [root@davery ~]# echo $sdx
    233
    [root@davery ~]#

    \脱义字符

    [root@davery ~]# ls -d test\*
    ls: 无法访问test*: 没有那个文件或目录
    [root@davery ~]#

    |管道符,管道后边可用多种命令

    [root@davery ~]# cat 1.txt |wc -l

    cut用来截取一个字段,格式 cut -d '分隔字符' [-cf] n  n代表数字

    -d:后边跟分隔字符,分隔字符要用单引号括起来

    -c:后边接第几个字符

    -f:后边接第几个区块

    [root@davery ~]# cat /etc/passwd |head 打印出文件
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    [root@davery ~]#
    [root@davery ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1 截取前2行第1个
    root
    bin
    [root@davery ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1,2 截取前2行第1、2个
    root:x
    bin:x
    [root@davery ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1-3 截取前2行第-到3个
    root:x:0
    bin:x:1
    [root@davery ~]#

    [root@davery ~]# cat /etc/passwd |head -2 |cut -c 4 截取前2行指定第4个字符
    t
    :
    [root@davery ~]#

    二、sort、wc、uniq命令

    sort排序命令,格式sort [-t 分隔符] [-kn1,n2] [-nru]  n1、n2为数字。

    -t 后边跟分隔符

    -n表示用纯数字排序

    -r表示反向排序

    -u表示去重复

    -kn1,n2表示由n1区间排序到n2区间,可以只写-kn1,即对n1字段排序

    [root@davery ~]# sort /etc/passwd |head -2 |cut -c 4
    :
    :

    [root@davery ~]# 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
    davery:x:1000:1003::/home/davery:/bin/bash
    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
    uaer1:x:1001:1004::/home/uaer1:/bin/bash
    user2:x:1002:1005::/home/user2:/bin/bash
    user3:x:1006:1006::/home/user3:/bin/bash
    user4:x:1007:898::/home/user4:/bin/bash
    user6:x:1008:898::/home/user6:/bin/bash

    默认按照abcd...排序

    [root@davery ~]# head /etc/passwd >> 0.txt
    [root@davery ~]# sort 0.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@davery ~]#

    [root@davery ~]# head -n5 /etc/passwd|sort  从首字母符向后依次按照ASCII码值进行比较,最后按照升序排列
    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
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    root:x:0:0:root:/root:/bin/bash
    [root@davery ~]#

    [root@davery ~]# head -n5 /etc/passwd |sort -t: -k3 -n     第三个区块按照数字升序排列
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    [root@davery ~]# ^C

    [root@davery ~]# head -n5 /etc/passwd |sort -t: -k3 -n -r    第三个区块按照数字反向排列
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    bin:x:1:1:bin:/bin:/sbin/nologin
    root:x:0:0:root:/root:/bin/bash
    [root@davery ~]#

    [root@davery ~]# sort -n 0.txt 从首字母符向后依次按照ASCII码值进行比较,最后按照升序排列
    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@davery ~]#

    [root@davery ~]# sort -nr 0.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统计词数

    [root@davery ~]# wc -l /etc/passwd
    25 /etc/passwd
    [root@davery ~]# wc -m /etc/passwd
    1092 /etc/passwd
    [root@davery ~]# wc -w /etc/passwd
    33 /etc/passwd
    [root@davery ~]#

    uniq命令,用来删除重复的行。

    -c 统计重复的行数

    [root@davery ~]# vi 0.txt

    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    ioperator:x:11:0:operator:/root:/sbin/nologin
    21213
    123213
    222

    222

    222
    [root@davery ~]#
    [root@davery ~]# uniq 0.txt    222重复的就被删除了
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    ioperator:x:11:0:operator:/root:/sbin/nologin
    21213
    123213
    222

    [root@davery ~]#

    [root@davery ~]# sort 0.txt |uniq -c
    1
    1 123213
    1 21213
    3 222
    1 adm:x:3:4:adm:/var/adm:/sbin/nologin
    1 bin:x:1:1:bin:/bin:/sbin/nologin
    1 daemon:x:2:2:daemon:/sbin:/sbin/nologin
    1 halt:x:7:0:halt:/sbin:/sbin/halt
    1 ioperator:x:11:0:operator:/root:/sbin/nologin
    1 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    1 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    1 root:x:0:0:root:/root:/bin/bash
    1 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    1 sync:x:5:0:sync:/sbin:/bin/sync
    [root@davery ~]#

    三、tee、tr、split命令

    tee后边跟文件名,作用类似于重定向>,但它比重定向多一个功能,即把文件写入后面所跟的文件时,还会做显示。

    [root@davery ~]# sort 0.txt |uniq -c |tee 2.txt  把前面的东西重定向到2.txt并显示出来
    1
    1 123213
    1 21213
    3 222
    1 adm:x:3:4:adm:/var/adm:/sbin/nologin
    1 bin:x:1:1:bin:/bin:/sbin/nologin
    1 daemon:x:2:2:daemon:/sbin:/sbin/nologin
    1 halt:x:7:0:halt:/sbin:/sbin/halt
    1 ioperator:x:11:0:operator:/root:/sbin/nologin
    1 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    1 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    1 root:x:0:0:root:/root:/bin/bash
    1 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    1 sync:x:5:0:sync:/sbin:/bin/sync

    [root@davery ~]# cat 2.txt
    1
    1 123213
    1 21213
    3 222
    1 adm:x:3:4:adm:/var/adm:/sbin/nologin
    1 bin:x:1:1:bin:/bin:/sbin/nologin
    1 daemon:x:2:2:daemon:/sbin:/sbin/nologin
    1 halt:x:7:0:halt:/sbin:/sbin/halt
    1 ioperator:x:11:0:operator:/root:/sbin/nologin
    1 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    1 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    1 root:x:0:0:root:/root:/bin/bash
    1 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    1 sync:x:5:0:sync:/sbin:/bin/sync
    [root@davery ~]#

    tr命令,用于替换字符,常用来处理文档中出现的特殊符号,

    -d 删除某个字符,后边要跟删除的字符

    -s 删除重复的字符

    [root@davery ~]# echo "davery" |tr '[d]' '[D]' 只跟换d为D
    Davery
    [root@davery ~]#

    [root@davery ~]# echo "davery" |tr 'd' 'D'  只跟换d为D
    Davery
    [root@davery ~]#

    [root@davery ~]# echo "davery" |tr '[a-z]' '[A-Z]'  全部换大写
    DAVERY
    [root@davery ~]#

    [root@davery ~]# echo "davery" |tr '[a-z]' '[1]'
    ]1]]]]
    [root@davery ~]# echo "davery" |tr '[a-z]' '1'  变为数字1
    111111
    [root@davery ~]#

    split命令

    用于切割文件

    -b表示根据大小来分隔文档,默认单位为byte,还有M k

    -l根据行数来分隔文档

    [root@davery ~]# find /etc/ -type f -name "*conf" -exec cat {} >> 0.txt \;
    [root@davery ~]# ls
    0.tx~ 0.txt.gz 1.txt 3.txt 5036 anaconda-ks.cfg.01 a.txt davery~ uear1
    0.txt 0_txt.swp 2.txt 4913 5159 anaconda-ks.cfg.1 davery make user1
    [root@davery ~]#

    [root@davery ~]# du -sh 0.txt
    212K 0.txt
    [root@davery ~]#

    0.tx~ 0.txt.gz 1.txt 3.txt 5036 anaconda-ks.cfg.01 a.txt davery~ test user1
    0.txt 0_txt.swp 2.txt 4913 5159 anaconda-ks.cfg.1 davery make uear1
    [root@davery ~]# split -b 1000 0.txt
    [root@davery ~]# ls
    0.tx~ a.txt xaf xar xbd xbp xcb xcn xcz xdl xdx xej xev xfh xft xgf xgr xhd xhp xib
    0.txt davery xag xas xbe xbq xcc xco xda xdm xdy xek xew xfi xfu xgg xgs xhe xhq xic
    0.txt.gz davery~ xah xat xbf xbr xcd xcp xdb xdn xdz xel xex xfj xfv xgh xgt xhf xhr xid
    0_txt.swp make xai xau xbg xbs xce xcq xdc xdo xea xem xey xfk xfw xgi xgu xhg xhs xie
    1.txt test xaj xav xbh xbt xcf xcr xdd xdp xeb xen xez xfl xfx xgj xgv xhh xht xif
    2.txt uear1 xak xaw xbi xbu xcg xcs xde xdq xec xeo xfa xfm xfy xgk xgw xhi xhu xig
    3.txt user1 xal xax xbj xbv xch xct xdf xdr xed xep xfb xfn xfz xgl xgx xhj xhv xih
    4913 xaa xam xay xbk xbw xci xcu xdg xds xee xeq xfc xfo xga xgm xgy xhk xhw xii
    5036 xab xan xaz xbl xbx xcj xcv xdh xdt xef xer xfd xfp xgb xgn xgz xhl xhx xij
    5159 xac xao xba xbm xby xck xcw xdi xdu xeg xes xfe xfq xgc xgo xha xhm xhy
    anaconda-ks.cfg.01 xad xap xbb xbn xbz xcl xcx xdj xdv xeh xet xff xfr xgd xgp xhb xhn xhz
    anaconda-ks.cfg.1 xae xaq xbc xbo xca xcm xcy xdk xdw xei xeu xfg xfs xge xgq xhc xho xia
    [root@davery ~]#

    split -b 1000 0.txt abc 指定名字

    四、shell特殊符号

    $变量前面的标识符,结合!来使用

    [root@davery ~]# ls 0.txt
    0.txt
    [root@davery ~]# !$
    0.txt

    ;符号如果想在一行执行多个命令,则使用;分隔

    [root@davery ~]# mkdir test1 ; touch 0.1txt ; touch 0.2txt ; touch 0.3txt

    ~ 表示用户家的目录,root用户的家目录/root,普通用户/home/username

    [root@davery ~]# cd ~
    [root@davery ~]# pwd
    /root
    [root@davery ~]# su davery
    [davery@davery root]$ cd ~
    [davery@davery ~]$ pwd
    /home/davery
    [davery@davery ~]$

    &把命令放到后台执行需要加&

    [root@davery /]# sleep 23 &
    [1] 2606
    [root@davery /]# jobs
    [1]+ 运行中 sleep 23 &
    [root@davery /]#

    重定向符号

    >取代 、>>追加 、2>错误重定向 、2>>错误重定向追加

    [ ]代表字符组合中的任意一个[0-9],[a-z A-Z],[abc]

    &&和||

    [root@davery /]# ls 0.txt || wc -l 2.txt      表示或,两个命令其中一个能执行成就行

    [root@davery /]# ls 0.txt && wc -l 2.txt  前边命令成功才会执行后边命令

  • 相关阅读:
    smartFoxClinet客户端官方中文Doc
    testTrycatch和catch中的应用程序恢复
    这几天做仿豆丁网flash文档阅读器,百度文库阅读器经验总结
    怎么通过生成动态对象名来调用一个对象?
    AS3的Number类型变量不指定初始值,则其初始值为NaN,而不是0.0
    最适合女生的五大紧缺游戏开发职位
    [阻塞和非阻塞]
    网络游戏客户端的日志输出
    我心目中的MMO
    和某游戏猎头的对话
  • 原文地址:https://www.cnblogs.com/davery/p/8726221.html
Copyright © 2020-2023  润新知