day 25 shell相关命令及特殊符

来源:互联网 发布:什么相机软件最好 编辑:程序博客网 时间:2024/06/03 22:52

8.9 shell特殊符-cut命令

用法: cut -d "分隔符" -f n--#截取第n段,“-d”后面跟分隔符,“-f” 指定段号, “-c” 指定第几个字符(此时不需要分隔符了),常结合管道符一起使用,例如:
  • cat /etc/passwd | head -2 | cut -d":" -f 1                                                --#截取passwd文件前两行的第1段
  • cat /etc/passwd | head -2 | cut -d":" -f 1,2                                             --#截取passwd文件前两行的第1段和第2段
  • cat /etc/passwd | head -2 | cut -d":" -f 1-4                                             --#截取passwd文件前两行的第1段到第4段 
  • cat /etc/passwd | head -2 | cut -c 4                                                       --#截取passwd文件前两行的第4个字符

注:cut命令只是对文件进行操作并得到结果,并不更改文件内容
8.10 sort_wc_uniq命令

1.sort命令
用于排序, 用法:sort -nrtfile
  • 无选项 默认按照ASCII码有小到大排序
  • -n                  --#按数字排序,字母或特殊符号都被认为是0(这部分依然按ASCII排序)
  • -r                   --#反序排序
  • -t                   --#后跟分隔符
2. wc命令
用于统计,用法:wc -lmw file
  • wc -l              --#统计行数
  • wc -m            --#统计字符数,包括行尾隐藏的换行符“$”
  • wc -w            --#统计词数,以空格作为区分,即使两个词之间以“,”分割,也会认为是一个词
3. uniq命令
用于去掉重复的行,用法:uniq -c, -c 表示统计行数,需要先排序才能去重
  • uniq file                             --#如果uniq后直接接文件,实际上需要先排序才能去重,否则只有相邻行的内容相同情况下才会去重
  • sort file | uniq                    --#先对文件排序,然后去重
  • sort file | uniq -c                --#先对文件排序,然后去重,并统计出现重复的次数
注:以上命令只是对文件进行操作并得到结果,并不更改文件内容
8.11 tee_tr_split命令

1. tee命令
与输出重定向(>)类似,只是在输出的同时会在屏幕显示,“-a”表示追加,例如
  • sort 1.txt | uniq -c | tee 2.txt              --#将前面一段命令的输出结果重写到文件2.txt中,同时在屏幕显示出来
  • sort 1.txt | uniq -c | tee -a 2.txt--#将前面一段命令的输出结果追加到文件2.txt中,同时在屏幕显示出来(只显示追加的部分,并不是整个文件的内容)
2. tr命令
用于替换字符,针对字符进行操作,注意替换与被替换的内容中要有空格分开
  • tr '[a-z]' '[A-Z]'                                       --#将所有小写字符替换成大写字符
  • tr 'a' 'A'                                                 --#将某个小写字符替换成大写字符
  • tr '[al]' '[AL]'                                          --#将某些小写字符替换成大写字符
  • tr '[al]' '[23]'                                          --#将某些小写字符替换成对应的数字
3. split命令
用于切割文件, 用法:split -bl [参数]file
  • -b                         --#表示按大小进行切割(默认单位为字节), 例:split -b 100M file [前缀名],不指定前缀名,默认以“x”为前缀,在当前路径下切割,会产生切割后的文件,原文件依然保留不变
  • -l                          --#表示按行数进行切割, 例:split -l 100M file
8.12 shell特殊符号

  • $                          --#变量前缀
  • !$                         --#上一条命令的最后部分内容,正则表达式里表示行尾
  • ;                           --#多条命令写到一行,用分号分割
  • ~                          --#用户家目录,正则表达式里表示匹配符
  • &                          --#放到命令后面,会把命令丢到后台执行
  • [ ]                         --#方括号中指定字符中任意一个,[a-z],[0-9],[a-zA-Z],[abc]
  • ||                          --#“或”的意思,用于多个命令之间,cmd1 || cmd2,如果cmd1执行成功(返回结果为0)则不执行cmd2,如果cmd1执行失败(返回结果非0)则执行cmd2
  • &&                       --#“且”的意思,用于多个命令之间,cmd1 || cmd2,如果cmd1执行成功(返回结果为0)则执行cmd2,如果cmd1执行失败(返回结果非0)则不执行cmd2

原创粉丝点击