zoukankan      html  css  js  c++  java
  • 【Linux学习五】文本处理


    环境
      虚拟机:VMware 10
      Linux版本:CentOS-6.5-x86_64
      客户端:Xshell4
      FTP:Xftp4

    一、cut:显示切割的行数据
    f:选择显示的列
    s:不显示没有分隔符的行
    d:自定义分隔符

    举例:
    cut -d' ' -f1-3 test.txt 按照空格切分test.txt每一行数据 显示1-3列
    cut -d' ' -f1,3 test.txt 按照空格切分test.txt每一行数据 显示第1、3列
    cut -d' ' -s -f1,3 test.txt 按照空格切分test.txt每一行数据 显示第1、3列 不显示没有分隔符的行

    二、sort:排序文件的行
    n:按数值排序
    r:倒序
    t:自定义分隔符
    k:选择排序列
    u:合并相同行
    f:忽略大小写

    [root@node1 src]# sort -t' ' -k2 sort.txt
    apple 1
    banana 12
    orange 8
    [root@node1 src]# sort -t' ' -n -k2 sort.txt
    apple 1
    orange 8
    banana 12
    [root@node1 src]# sort -t' ' -n -r -k2 sort.txt
    banana 12
    orange 8
    apple 1


    三、wc 统计单词
    -c 字节数
    -l 行数
    -w 单词数
    统计文件行数、单词数、单词字节数(包括空格、占位符)
    [root@node1 src]# wc sort.txt
    3 6 27 sort.txt

    四、sed 行编辑器
    主要两件事:
    1.查询数据,使用行号或者正则查询
    2.对查询出来的数据进行新增(行前或行后)、替换、删除 -i参数会修改源文件

    sed [options] 'AddressCommand' file ...
    options:
    -n: 只展示匹配到内容
    -i: 直接修改原文件
    -e SCRIPT -e SCRIPT:可以同时执行多个脚本
    -f /PATH/TO/SED_SCRIPT
    -r: 表示使用扩展正则表达式

    编辑命令
    d: 删除符合条件的行;
    p: 显示符合条件的行;
    astring: 在指定的行后面追加新行,内容为string
    :可以用于换行
    istring: 在指定的行前面添加新行,内容为string
    c 用新文本替换定位文本
    r FILE: 将指定的文件的内容添加至符合条件的行处
    w FILE: 将地址指定的范围内的行另存至指定的文件中;
    s/pattern/string/修饰符: 查找并替换,默认只替换每行中第一次被模式匹配到的字符串
    g: 行内全局替换
    i: 忽略字符大小写
    s///: s###, s@@@
    (), 1, 2

    sed:行编辑器Address
    可以没有
    给定范围
    查找指定行/str/


    五、awk
    awk是一个强大的文本分析工具。相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。
    简单来说awk就是把文件逐行的读入,(空格,制表符)为默认分隔符将每行切片,切开的部分再进行各种分析处理。
    awk -F '{pattern + action}' {filenames}
    支持自定义分隔符
    支持正则表达式匹配
    支持自定义变量,数组 a[1] a[tom] map(key)
    支持内置变量
    ARGC 命令行参数个数
    ARGV 命令行参数排列
    ENVIRON 支持队列中系统环境变量的使用
    FILENAME awk浏览的文件名
    FNR 浏览文件的记录数
    FS 设置输入域分隔符,等价于命令行 -F选项
    NF 浏览记录的域的个数
    NR 已读的记录数
    OFS 输出域分隔符
    ORS 输出记录分隔符
    RS 控制记录分隔符
    支持函数
    print、split、substr、sub、gsub
    支持流程控制语句,类C语言
    if、while、do/while、for、break、continue


    参考:
    sed
    https://www.cnblogs.com/ctaixw/p/5860221.html

  • 相关阅读:
    MyBatis 基础搭建及架构概述
    Effective Java
    Effective Java
    Spring注解?啥玩意?
    Spring 中的Null-Safety
    Spring Resource框架体系介绍
    内部类的用法
    一文了解ConfigurationConditon接口
    详解状态压缩动态规划算法
    【硬核】使用替罪羊树实现KD-Tree的增删改查
  • 原文地址:https://www.cnblogs.com/cac2020/p/10161764.html
Copyright © 2011-2022 走看看