zoukankan      html  css  js  c++  java
  • linux中cut、printf、awk、sed命令

    cut、printf、awk、sed在linux中都是用来处理文本的命令,接下来一个一个看。

    一、cut命令

      cut [选项] 文件名

      选项:

        

        主要使用一下两个参数,若是只使用 -f 则默认的分割符为

        -f 列号:提取第几列

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

      命令说明:

      cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。

      如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。

      例:cut -f 2,4 stu.txt // 取出第2,4列,按 分割

      例:cut -f 2 -d ":" stu.txt // 取出第2列,按 : 分割

      注意:cut是由局限性的,若是数据中间有好多的空格,而你又是按照空格来切分的,这个时候会有好多的空白数据,但是awk可以解决这个问题。

    二、printf命令

      printf '输出类型输出格式' 输出内容

      输出格式

        %ns  // 输出字符串,n为输出几个字符

        %ni  // 输出整数,n为输出几个数字

        %m.nf  // 输出浮点数,m为输出的整数位,n为输出的小数位

      输出格式

       

      使用案例

        printf '%s %s %s ' 1 2 3 4 5 6

        结果:

          1 2 3

          4 5 6

        printf '%s %s %s ' $(cat stu.txt)

         结果:

          原数据

          

          执行后

          

    三、awk命令

      AWK是一种处理文本文件的语言,是一个强大的文本分析工具。

      之所以叫AWK是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的Family Name的首字符。

      

      直接上例子:

      awk '{printf $2 " "}' a.txta.txt // 取出第2列

      BEGIN

      awk 'BEGIN{printf "this is a printf "} {printf $2 " " $3 " "}' student.txt

      结果:在开始先输出

        this is a printf

        NAME GENDER

        优优 女

        阿斌 男

        堂哥 女

      END

      awk 'END{printf "this is a printf "} {printf $2 " " $3 " "}' student.txt  

      结果:在最后结束后输出

        NAME GENDER

        优优 女

        阿斌 男

        堂哥 女

        this is a printf

      FS=":" // 按:号切割

      awk 'BEGIN{FS="-"}{printf $1 " "}' a.txt

      条件判断

      awk 'BEGIN{FS="-"}$2>10{printf $2 " "}' a.txt

      条件1{执行1}条件2{执行2}

      

    四、sed命令

      Linux sed命令是利用script来处理文本文件。

      sed可依照script的指令,来处理、编辑文本文件。

      语法

      sed [-hnV][-e<script>][-f<script文件>][文本文件] 

      参数

      

      动作说明

      

      例子: 

        sed -n '2p' student.txt // 查看第二行

        sed -i '1a xxxxxxx' a.txt // -i会操作到文件,1a 追加第一行

        sed -i '1c xxxxxxx' a.txt // 替换第一行的数据

        sed -i '1d' a.txt // 删除第一行

        sed '4s/78/98/g' // 把4列的78换成98

        sed -e '1s/xxx//g;2s/xxx//g'// 把第一列的xxx和第二列的xxx替换为空

        sed -i -e '1s/xxx//g;2s/xxx//g'// 把第一列的xxx和第二列的xxx替换为空,操作到文件

     
  • 相关阅读:
    解压cpio.gz文件
    get/post时中文乱码问题的解决办法(转载)
    linux下卸载oracle 10g
    linux下oracle自启动
    linux mount远程磁盘(转载)
    转载JS编写随机全屏浮动窗口
    linux下配置vsftpd(FTP)
    rhel 6安装oracle 11g R2
    MSSQL数据库备份还原常用SQL语句及注意
    总结一下,写的很差!还是抄吧,不丢人了。
  • 原文地址:https://www.cnblogs.com/dongxiucai/p/10022325.html
Copyright © 2011-2022 走看看