Linux Shell编程 - 字符截取命令

01、字段提取命令 cut  =>   cut [选项] 文件名

    -f 列号: 提取第几列

    -d 分隔符:按照指定分割符分割列

    例如:cut  -f  2,4(列号;,逗号可以多行提取)  student.txt  

       cut  -d “:” -f 1,3 /etc/passwd 

02、格式化输出命令 printf 命令  => printf  ‘输出类型输出格式’  输出内容

    输出类型:

      %ns:输出字符串。n 是数字指代输出几个字符

      %ni:输出整数。n 是数字指代输出几个数字

      %m.nf:输出浮点数。m是整数,n是小数

    输出格式:

      \a:输出警告声音

      \b:输出退格键,删除键

      \f:清楚屏幕

      \n:换行

      \r:回车

      \t:水平输出退格键

      \v:垂直输出退格键

03、awk命令  =>  awk ‘条件1{动作1}条件2{动作2}....’  文件名  条件 (Pattern)

    动作(Action):

      格式化输出

      流程控制语句

    例如:awk  ‘ { printf  $2  "\t"  $6"\n" } ’   student.txt

        $2、$6:代表第几行

  BEGIN  => awk  ‘BEGIN{print "test !!"} { printf  $2  "\t"  $6"\n" } ’   student.txt 

      BEGIN 会在所有的数据处理完之前执行

      例如:FS内置变量

        cat /etc/passwd | grep "/bin/bash" | \ awk 'BEGIN {FS=":"} {printf $1 "\t" $3 "\n"}'

  END  =>   相反 :所有的数据处理完之后执行

04、sed 命令 :是一种几乎包括在所有UNIX平台(包括Linux)的轻量级流编辑器。

        sed 主要是用来将数据进行选取、替换、删除、新增的命令。  

  sed [选项] -‘[动作]’- 文件名

    -n:一般sed命令会把所有数据都输出到屏幕,如果加入此选择,则只会把经过sed命令处理的行输出到屏幕

    -e:允许对输入数据应用多条sed命令编辑

    -i:用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出

    动作:

      

    打印,输出指定行:sed  -n  ‘2p’ student.txt

    删除:sed “2,4d” student.txt   =>  删除2 -- 4行的数据,但是不修改文件本身 

       追加:sed ‘2a  Hello’   student.txt 在第二行后追加 hello

    插入:sed ‘2i  wrold Hello ’  student.txt  在第二行前插入两行数据

    字符串替换:sed -i  ‘2s/99/55/g’ student.txt    把第2行的99替换成55

         加上 -i:连同文件一起修改,不加只是对打印修改

         加-e:sed -e ‘s/Liming/ads/g;s/Gao/ads/g’ student.txt

            同事把“Liming” 和 “Gao” 替换为ads

 05、排序命令  =>  sort [选项] 文件名

    选项:

      -f:忽略大小写

      -n:以数值型进行排序,默认使用字符串型排序

      -r:反向排序

         -t:指定分隔符,默认是制表符

      -k n[,m]:按照指定的字段范围排序。从第n字段开始,m字段结束(默认到行尾)

     例如:sort -t ":" -k 3,3 /etc/passwd (一般不需要)

      指定分隔符是 “:”,用第三字段开头,第三字段结尾排序,就是只用第三字段排序(用户UID排序)

 

 06、统计命令  =>  wc [选项] 文件名

    选项:

      -l:只统计行数

      -w:只统计单词数

      -m:只统计字符数

  

 

 

 

 

 

 

 

 

 

      

posted @ 2017-11-25 16:37  FallenLunatic  阅读(1684)  评论(0编辑  收藏  举报