• Linux字符串截取和处理命令 cut、printf、awk、sed、sort、wc


    1. cut [选项] 文件名

    -f  列号  #提取第几列(分隔符默认为 )

    -d  分隔符  #指定分隔符

    例如:cut -f 2 a.txt  #截取文件a.txt内容的第二列(列号从1开始)

       cut -f 2,4 a.txt  #截取文件a.txt内容的第二列和第四列

       cut -d  ":"  -f 1,3 /etc/passwd  #截取文件passwd文件的第1列和第三列,以:分割取其中的第一列和第三列

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

    输出类型:

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

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

    %m.nf  位数和小数位数。例如:%8.2f 代表输出8位数,其中2位是小数,6位是整数

    输出格式:

    a  输出警告声音

      输出退格键,也就是BackSpace键

    f  消除屏幕

      换行

      回撤

      水平制表符

    v  垂直制表符

    举例:

    printf '%s %s %s ' 1 2 3 4 5 6  #表示每三个位一组输出,并加换行符

    printf '%s %s %s ' $(cat a.txt)  #表示以4列的形式输出

    3. awk '条件1{动作1}条件2{动作2}...' 文件名

    awk '{printf $2 " " $6 " "}' a.txt  #输出文件a.txt的第二列和第6列

    4. sed [选项] '[动作]' 文件名  #说明:动作必须用引号引起来

    选项:

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

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

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

    动作:

    a  追加,在当前行后添加一行或多行。添加多行时除最后一行外,每行末尾需要用""代表数据未完结。

    c  行替换,用c后面的字符替换原数据行,替换多行时除最后一行外,每行末尾需要用""代表数据未完结。

    i  插入,在当前插入一行或多行,插入多行时,除最后一行外每行末尾需用""代表数据未完结。

    d  删除,删除指定的行

    p  打印,输出指定的行

    s  字符串替换,用一个字符串替换另外一个字符串。格式为"行范围 s/旧字符串/新字符串/g"

    sed可以接收管道符的输出结果

    举例:

    sed '2p' a.txt  #输出第2行后,又把所有内容输出一遍

    sed -n '2p' a.txt  #只输出第二行

    sed '2,4d' a.txt  #删除第2到4行,只删除屏幕输出,不会更改文件本身的内容

    sed '2a hello' a.txt  #在第二行插入一行 hello

    sed '2i hello'

      word' a.txt  #在第二行前插入多行 hello 一行 word一行

    sed '2c no person' a.txt  #用no person 替换第二行

    sed '4s/99/55/g' a.txt  #把第4行的99替换为55

    sed -i '4s/99/55/g' a.txt  #把第4行的99替换为55,修改的是原文件而不是屏幕输出

    sed -i 's/99/55/g' a.txt  #s前不加行号时表示替换整个文件中匹配的字符串

    sed -e 's/Liming//g;s/Gao//g' a.txt  #-e表示允许多个条件执行,把Liming替换为空,把Gao替换为空

    5. sort [选项] 文件名  #排序

    选项:

    -f  忽略大小写

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

    -r  反向排序

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

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

    6. wc [选项] 文件名  #统计

    选项:

    -l  只统计行数

    -w  只统计单词数

    -m  只统计字符数

  • 相关阅读:
    【ASP.NET开发】ASP.NET(MVC)三层架构知识的学习总结
    网络工作室暑假后第二次培训资料(SQLServer存储过程和ADO.NET访问存储过程)整理(一)
    【ASP.NET开发】ASP.NET对SQLServer的通用数据库访问类 分类: ASP.NET 20120920 11:17 2768人阅读 评论(0) 收藏
    网络工作室暑假后第一次培训资料(ADO.NET创建访问数据集)整理 分类: ASP.NET 20121005 20:10 911人阅读 评论(0) 收藏
    网络工作室暑假后第二次培训资料(SQLServer存储过程和ADO.NET访问存储过程)整理(二)
    RabbitMQ(二)队列与消息的持久化
    实用的与坐标位置相关的js
    prototype、JQuery中跳出each循环的方法
    PHP获取当前日期所在星期(月份)的开始日期与结束日期
    Document Viewer解决中文乱码
  • 原文地址:https://www.cnblogs.com/zhaolili/p/5299294.html
Copyright © 2020-2023  润新知