542179528 发表于 2018-8-26 10:36:31

shell特殊符号,wc,uniq,tee_tr_split命令

  # cut -d: -f 3 /etc/passwd   -d:分隔符    -f 加数字第几段   f是第几段
  0
  1
  2
  # cut -d: -f 3,4,5,6,7 /etc/passwd可以多选几段加,号就可以
  0:0:root:/root:/bin/bash
  1:1:bin:/bin:/sbin/nologin
  2:2:daemon:/sbin:/sbin/nologin
  3:4:adm:/var/adm:/sbin/nologin
  # cut -c 10 /etc/passwd    -c是第几个字符    c10就是第十个字符
  0
  :
  2
  # cut -c 1-10 /etc/passwd    第一个到第十个字符-c是区间第几个
  root:x:0:0
  bin:x:1:1:
  daemon:x:2
  # sort /etc/passwd    默认排序阿斯玛排序
  adm:x:3:4:adm:/var/adm:/sbin/nologin
  apache:x:48:48:Apache:/var/www:/sbin/nologin
  bin:x:1:1:bin:/bin:/sbin/nologin
  daemon:x:2:2:daemon:/sbin:/sbin/nologin
  # sort -t: -k3 /etc/passwd   -t:是分隔符-k3 是第三段排序
  root:x:0:0:root:/root:/bin/bash
  uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
  operator:x:11:0:operator:/root:/sbin/nologin
  bin:x:1:1:bin:/bin:/sbin/nologin
  # sort -t: -k3 -n /etc/passwd   -n 按数字排序   也可以-k 3,6区间值
  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
  # sort -t: -k3,5 -n -r /etc/passwd      -r 是反序
  yun:x:500:500::/home/yun:/bin/bash
  saslauth:x:499:76:Saslauthd user:/var/empty/saslauth
  bin:x:1:1:bin:/bin:/sbin/nologin
  root:x:0:0:root:/root:/bin/bash
  # sort -t: -k 3,5 -n -r -u /etc/passwd   -u是去重复的 意思
  sort -un 2.txt       也可以这样用
  # uniq -c 2.txt       加选项 -c 列出重复
  1 1
  1 2
  1 3
  2 4
  1 5
  2 6
  1 7
  2 8
  2 9
  # sort 2.txt |uniq -c   排下序在去去重复
  1 1
  1 10
  1 12
  1 1212
  1 12166
  1 2
  1 3
  2 4
  1 5
  2 6
  1 7
  2 8
  2 9
  # echo "1111111"|tee 1.txt   tee的用法
  1111111
  # echo "1111111"|tee 1.txt
  1111111
  # cat 1.txt
  1111111
  # ls *.txt |tr 'a-z' 'A-Z'    .txt变成大写 字母名字变成大写tr替换字符
  1.TXT
  2.TXT
  C.TXT
  M.TXT
  Z.TXT
  # echo $ "jksadhasjkdh" |tr 'j' 'E'   替换大小写 字符
  $ EksadhasEkdh
  # echo "jksadhasjkdh" |tr 'j' 'E'
  EksadhasEkdh
  # echo "jksadhasjkdh" |tr 'a-z' 'A-Z'全局替换   也可以范围缩小 ‘a-f’
  JKSADHASJKDH
  split切割日志的
  # split -l 10 anaconda-ks.cfg      -l分多少行
  # ls
  12               c.txt                   link      xaa   xab
  12.tar         install.log             m.txt    xac
  1.txt            install.log.syslog      wps      xad
  # du -sb anaconda-ks.cfg    查看大小
  1028    anaconda-ks.cfg
  # split -b 100 anaconda-ks.cfg      -b 以100b切割
  # ls -lh xa*
  -rw-r--r-- 1 root root 100 10月 27 07:53 xaa
  -rw-r--r-- 1 root root 100 10月 27 07:53 xab
  -rw-r--r-- 1 root root 100 10月 27 07:53 xac
  -rw-r--r-- 1 root root 100 10月 27 07:53 xad
  -rw-r--r-- 1 root root 100 10月 27 07:53 xae
  -rw-r--r-- 1 root root 100 10月 27 07:53 xaf
  -rw-r--r-- 1 root root 100 10月 27 07:53 xag
  -rw-r--r-- 1 root root 100 10月 27 07:53 xah
  -rw-r--r-- 1 root root 100 10月 27 07:53 xai
  -rw-r--r-- 1 root root 100 10月 27 07:53 xaj
  -rw-r--r-- 1 root root28 10月 27 07:53 xak
  # split -b 100 anaconda-ks.cfgnew_      更改名字new
  # ls
  12                      link    new_ai   xaf
  12.tar                  m.txt   new_aj   xag
  1.txt                   new_aanew_ak   xah
  2.txt                   new_abwps      xai
  anaconda-ks.cfg         new_acwps.zipxaj
  &&并且||或者
  # ls 1.txt && ls 2.txt         能够执行第一个才会执行第二个
  1.txt
  2.txt
  # ls 1.txt && ls 20.txt   前面的命令执行成功才会执行后面的命令
  1.txt
  ls: 无法访问20.txt: 没有那个文件或目录
  # ls 10.txt && ls 2.txt    如果前面的命令没有执行成功 它不再执行后面的命令
  ls: 无法访问10.txt: 没有那个文件或目录
  # ls 1.txt || ls 2.txt
  1.txt
  # ls 10.txt || ls 20.txt
  ls: 无法访问10.txt: 没有那个文件或目录
  ls: 无法访问20.txt: 没有那个文件或目录
  # ls 10.txt || ls 2.txt
  ls: 无法访问10.txt: 没有那个文件或目录
  2.txt
  && 左边的命令执行成功后,才会执行右边的命令
  ||左边的命令执行不成功,才会执行右边的命令
  ;   左边的命令成功与否,后面命令都会执行

页: [1]
查看完整版本: shell特殊符号,wc,uniq,tee_tr_split命令