不正狼 发表于 2018-8-22 12:01:00

shell特殊符号/cut,sort,wc,uniq,tee,tr,split命令

shell特殊符号cut命令
  shell特殊符号
  

* *任意个任意字符  
* ?任意一个字符
  
* #注释字符
  
* \脱义字符
  
* |管道符
  

  命令cut
  cut用来截取某一个字段,其格式为:#cut –d ‘分隔字符’[-cf]n,n是数字。
  选项:
  -d    后面跟分隔符,分隔字符要有单引号括起来。
  -c    后面接的是第几个字符。
  -f   后面接的是第几个区块。

  # cat /etc/passwd |head -2
  root:x:0:0:root:/root:/bin/bash
  bin:x:1:1:bin:/bin:/sbin/nologin
  # cat /etc/passwd |head -2 |cut -d ":" -f 1
  root
  bin
  # cat /etc/passwd |head -2 |cut -d ":" -f 1,2
  root:x
  bin:x
  # cat /etc/passwd |head -2 |cut -d ":" -f 1-3
  root:x:0
  bin:x:1
  # cat /etc/passwd |head -2 |cut -c 4
  t


sort_wc_uniq命令
  sort命令
  sort用作排序,其格式为sort[-t分隔符][-kn1,n2][-nru],这里n1和n2指的是数字,其他选项的含义如下。
  选项:
  -n    表示使用纯数字排序
  -r     表示反向排序
  -u    表示去重复
  -t   后面跟分割字符,作用跟cut的-d选项一样
  -kn1,n2       表示由n1区间排序到n2区间,可以只写-kn1,即对n1字段排序

  # sort 1.txt
  <
  >
  [
  1111
  11222
  22333
  444444411
  adm:x:3:4:adm:/var/adm:/sbin/nologin
  # sort -n 1.txt       //字母默认为0
  <
  >
  [
  adm:x:3:4:adm:/var/adm:/sbin/nologin
  1111
  11222
  22333
  444444411
  # sort -nr 1.txt    //反序显示
  444444411
  22333
  11222
  1111
  adm:x:3:4:adm:/var/adm:/sbin/nologin
  [
  >
  <

  wc命令
  wc命令用于统计文档的行数、字符数、或词数。该命令的常用选项由:
  -l(统计行数)
  -m(统计字符数)
  -w(统计词数)

  # cat 2.txt
  hello world
  111
  222
  111,222
  # wc -l 2.txt
  4 2.txt
  # wc -m 2.txt
  28 2.txt
  # wc -w 2.txt
  5 2.txt

  uniq命令
  uniq用来删除重复的行
  选项:
  -c统计重复次数

  # cat 2.txt
  hello world
  111
  222
  111,22
  222
  aa
  345
  222
  aa
  456
  456
  # sort 2.txt |uniq -c
  1 111
  1 111,22
  3 222
  1 345
  2 456
  2 aa
  1 hello world


tee_tr_split命令
  命令tee
  tee后面跟文件名,其作用类似于重定向>,比重定向多一个功能,把文件写入后面所跟的文件时并显示在屏幕上,通常用于管道符|后。
  选项
  -a追加的意思

  # sort 2.txt |uniq -c |tee 4.txt
  1 111
  1 111,22
  3 222
  1 345
  2 456
  2 aa
  1 hello world
  # sort 2.txt |uniq -c |tee -a 4.txt
  # cat 4.txt
  1 111
  1 111,22
  3 222
  1 345
  2 456
  2 aa
  1 hello world
  1 111
  1 111,22
  3 222
  1 345
  2 456
  2 aa
  1 hello world

  命令tr
  tr用于替换字符

  # echo &quot;asklinux&quot; |tr '' ''
  AskLinux
  # echo &quot;asklinux&quot; |tr '' ''
  ASKLINUX

  命令split

  split用于切割文档。

  选项:
  -b    表示依据大小来分割文档,单位为byte
  -l     表示依据行数来分割文档

  # du -sh 5.txt
  652K    5.txt
  # split -b 200k 5.txt
  # ls
  5.txtxaaxabxacxad
  # split -l 4000 5.txt
  # ls
  5.txtxaaxabxacxadxae


shell特殊符号下
  

* $变量前缀,!$组合,正则里面表示行尾  
* ;多条命令写到一行,用分号分割
  
* ~用户家目录,正则表达式表示匹配符
  
* &放到命令后面,会把命令丢到后台
  
* >>>   2>2>>&>
  
* []指定字符串中的一个,,
  
* ||和&&,用于命令之间
  

  # rm -f xa* ; ls      //分号用法
  5.txt
  # ls 1.txt || wc -l 2.txt    //当前面的命令正确执行时,后面的命令将不再执行
  1.txt
  # ls 1.txt && wc -l 2.txt   //当前面的命令正确执行时,后面的命令才执行
  1.txt
  11 2.txt



页: [1]
查看完整版本: shell特殊符号/cut,sort,wc,uniq,tee,tr,split命令