zoukankan      html  css  js  c++  java
  • Linux常用命令-文本处理

    Linux文本处理工具

      文本处理工具

    • 文件内容: less 和cat
    • 文件截取:head和tail
    • 按列抽取:cut
    • 按关键字抽取:grep

      文件查看   cat

    Usage: cat [OPTION]... [FILE]...
    -E 显示行的结束符号$
    -n 显示每一行的行号
    -b 给非空行编号
    -s 折叠空行为一行

      tac 倒序显示文件 

      分页查看文件内容

    • more 分页查看文件
      • more [options…] file...
      • -d 显示翻页以及退出提示
      • 空格翻一屏,回车翻一行
      • 输出自己退出
    • less 一页一页的查看文件或stdin输出
      • / 文本 搜索文本
      • 空格一屏 回车一行
      • n 向下搜索 N 向上搜索
      • q来退出
      • less 命令是man命令使用的分页器

      显示文本前或后行内容

    • head [option] … [file]… 默认10行
      • -c # 指定获取前#字节
      • -n # 指定获取前#行
      • -# 指定获取前#行
    • tail [options]…[file]… 默认10行
      • -c #指定获取后#字节
      • -n # 指定获取后#行
      • -# 指定获取后#行
      • -f 追踪显示文件fd新追加的内容,常用与日志监控
    • tailf 类似于 tail -f 当文件不增长时并不访问文件

      抽取文本cut

    cut [option] ... [FILE] ...
    -d 指明分隔符,默认tab
    -f # 第#个字段
    #,#[,#] 离散的多个字段,例如1,3,6
    #-# 连续的多个字段
    混合使用:1-3,7
    -c 按照字符切割
    cut -d: -f1 /etc/passwd
    cat /etc/passwd|cut -d: -f7
    cut -c2-5 /etc/passwd

      合并文件

    paste 合并两个文件同行号的列到一行
    paste[option]...[file]...
    -d 分隔符 指定分隔符,默认是tab
    -s 所有行合并成一行显示
    paste f1 f2
    paste -d: f1 f2
    paste -s f1 f2

      分析文本的工具

      文本数据统计 wc (word count)

    • 计数单词总数、行总数、字节总数和字符总数
    • 可以对文件或者stdin中的数据进行统计
    [root@centos ~]#wc a.sh
     4  5 30 a.sh
     行数  字数 字节数 文件
     -l 只统计行数
     -w 只统计单词总数
     -c 只统计字节总数
     -m 只统计字符总数
     -L 显示文件中最长行的长度

      文本排序 sort

    把整理过的文本显示在stdout 不改变原始文件

    sort [options] files 默认是字母排序
    -r 执行倒序排列
    -R 随机排序
    -n 按数字大小排序
    -f 忽略大小写
    -t 指定切割符号
    -t c 执行分隔符 -k 按第几列来进行排序

      删除重复行 uniq

    从输入中删除前后相接的重复的行

    uniq [option] ...[file]
    -c 显示每行重复出现的次数
    -d 仅显示重复过的行
    -u 仅显示不曾重复的行
    连续且完全相同才为重复
    经常使用方案
    sort filename |uniq -c
    ss -tnp|cut -d: -f2|tr -s " "|cut -d" " -f2|sort -n|uniq -c

      比较文件

    diff filename filename

    [root@localhost jiangyi]#echo "abc" >b
    [root@localhost jiangyi]#echo "abcd" >d
    [root@localhost jiangyi]#diff b d
    1c1
    < abc
    ---
    > abcd
    [root@localhost jiangyi]#echo "abcde" >b
    [root@localhost jiangyi]#diff b d
    1c1
    < abcde
    ---
    > abcd
    [root@localhost jiangyi]#echo "abcde" >> b
    [root@localhost jiangyi]#diff b d
    1,2c1
    < abcde
    < abcde
    ---
    > abcd
    [root@localhost jiangyi]#echo "abcd" >> b
    [root@localhost jiangyi]#diff b d
    1,2d0
    < abcde
    < abcde
  • 相关阅读:
    JQuery判断CheckBox是否选中
    Ghost下的gho镜像分区工具
    JQuery提示$(...).on is not a function解决方法
    Jetty错误: badMessage: java.lang.IllegalStateException: too much data after closed for HttpChannelOverHttp@472adad9{r=2,c=false,a=IDLE,uri=}
    Linux下使用Shell过滤重复文本(转)
    JQuery给动态HTML绑定事件
    Chrome插件在页面上直接绑定JavaScript事件提示Refused to execute inline event handler because it violates the following Co
    解决——》java.lang.IllegalArgumentException: Body parameter 0 was null
    qhclass
    java类uuid源码分析
  • 原文地址:https://www.cnblogs.com/Xiao_Xu/p/11284838.html
Copyright © 2011-2022 走看看