一、常用简单工具

  cat [OPTION]... [FILE]... 

  •   -E:显示行的结束符$
  •   -n:对显示出的每一行进行编号。
  •   -A:显示所有控制符
  •   -s:压缩连续空行为一行
  more:分页查看文件 
   -d: 显示翻页及退出提示 
  less:一页一页地查看文件或STDIN输出
  查看时有用的命令包括:
  /文本 搜索 文本
  n/N 跳到下一个 或 上一个匹配
  less 命令是man命令使用的分页器
  文本切割cut [OPTION]... [FILE]... 
  •   -f:取第几个字段
  •   -c:按字符切割
  •   -d:指定切割符,默认为tab
  wc文本数据统计
  •   -l:只计算行数
  •   -w:world,只计算单词的总数
  •   -c:只计算字节总数
  •   -m:只是计算字符总数
  •   -L:显示文件中最长行的长度
  sort,文本排序
  •   -r:倒序输出
  •   -R:随机排序
  •   -n:执行按照数字大小整理
  •   -f:选项忽略(fold)字符串中的字符大小写
  •   -u:删除输出中的重复行
  •   -t c使用c作为字段的界定符
  •   -k X选项按照使用c字段分割的X列来整理能使用多次
  uniq统计工具
  •   -c:显示每行重复出现的次数
  •   -d:仅显示重复的行
  •   -u:显示不重复的行
  •   常和sort 命令一起配合使用: sort userlist.txt | uniq -c
  grep文本过滤
  作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行
  grep [OPTIONS] PATTERN [FILE...] 
  •   -m #:匹配到#次后停止
  •   -v:显示不被pattern匹配到的行
  •   -i:忽略大小写
  •   -c:统计匹配到的行数
  •   -o:仅显示匹配到的行
  •   -q:静默模式,不输出任何信息
  •   -A #:after后#hang
  •   -B #:before,前#行
  •   -C #:context,前后各#行
  •   -e:现实多个选项间的或关系grep –e ‘cat ’ -e ‘dog’ file
  •   -w: 匹配整个单词
  •   -E :使用ERE
  •   -F :相当于fgrep,不支持正则表达式
  •   -f :file 根据模式文件处理

二、正则表达式

  REGEXP: Regular Expressions,由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能
  程序支持:grep,sed,awk,vim, less,nginx,varnish等 
  分两类:基本正则表达式:BRE,扩展正则表达式:ERE 
  基本正则表达式元字符 
  •   . 匹配任意单个字符
  •   [] 匹配指定特定范围内任意单个字符,式列:[li]  [wang] [0-9]
  •   [^] 匹配指定范围外的任意单个字符
  •  [:alnum:]字符和字母
  •   [:alpha:]代表任何英文大小写字符,a-z,A-Z
  •   [:lower:]小写字母[:upper:] 大写字母
  •   [:blank:] 空白字符,空格,制表符等
  •   [:space:]水平和垂直的空白字符(比[:blank:]包含的范围广)
  •   [:cntrl:] 不可打印的控制字符(退格、删除、警铃...
  •   [:digit:] 十进制数字 [:xdigit:]十六进制数字
  •   [:graph:]可打印的非空白字符
  •   [:print:]可打印字符
  •   [:punct:]标点符号
  •   * 匹配前面的字符任意次,包括0次贪婪模式:尽可能长的匹配
  •   .* 任意长度的任意字符
  •   \? 匹配其前面的字符0或1次
  •   \+ 匹配其前面的字符至少1次
  •   \{n\} 匹配前面的字符n次
  •   \{m,n\} 匹配前面的字符至少m次,至多n次
  •   \{,n\} 匹配前面的字符至多n次
  •   \{n,\} 匹配前面的字符至少n次

位置锚定:定位出现的位置 

  •   ^ 行首锚定,用于模式的最左侧
  •    $ 行尾锚定,用于模式的最右侧   
  •   ^PATTERN$ 用于模式匹配整行  
  •   ^$ 空行  
  •    ^[[:space:]]*$ 空白行  
  •    \< 或 \b 词首锚定,用于单词模式的左侧  
  •    \> 或 \b 词尾锚定,用于单词模式的右侧   
  •   \<pattern\> 匹配整个单词
分组和引用
  分组:\(\) 将一个或多个字符捆绑在一起,当作一个整体处理,如:\(root\)\+
  分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名方式为: \1, \2, \3, ...
  \1 表示从左侧起第一个左括号以及与之匹配右括号之间的模式所匹配到的字符
  示例: \(string1\(string2\)\)
  \1 :string1\(string2\)
  \2 :string2
  后向引用:引用前面的分组括号中的模式所匹配字符,而非模式本身
  或者:\|
  示例:a\|b a或b
  C\|cat C或cat
  \(C\|c\)at Cat或cat

linux文本处理工具篇的更多相关文章

  1. Linux文本处理工具

    Linux文本处理工具 Linux中熟练的使用文本处理工具非常的重要, 因为Linux在设计的时候是采用一切皆文件的哲学的, 甚至连计算机中的配置也都使用伪文件系统来表示, 要查询里面的内容就是对文件 ...

  2. Linux文本编译工具VIM详解

    Linux文本编译工具VIM详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.VIM概述 1>.vim简介 >.vi: 全称Visual editor,即文本编辑 ...

  3. Linux文本查看工具

    文本查看工具 cat 特点: 不能用来看二进制文件 选项: -A: 显示不可见字符 cat支持标准输入: cat > aa.txt ---键盘作为标准输入,输出的结果重定向文件中去了 cat & ...

  4. Linux 文本处理工具grep,sed,awk

    grep.sed和awk都是文本处理工具,虽然都是文本处理工具单却都有各自的优缺点,一种文本处理命令是不能被另一个完全替换的,否则也不会出现三个文本处理命令了.只不过,相比较而言,sed和awk功能更 ...

  5. linux 文本分析工具---awk命令(7/1)

    awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...

  6. Linux文本处理工具——Sed

    sed:数据流编辑器: awk:报告文本的生成器 sed 基本用法:(Stream EDitor) Stream 流 EDitor 编辑器 行编辑器 全屏编辑器:vi/vimsed:内存空间(模式空间 ...

  7. linux文本处理工具及正则表达式

    cat命令:查看文本内容 cat [选项]... [文件]... -E    显示行结束符 -n    显示文本内容时显示行号 -A    显示所以控制符 -b    非空行编号 -s     压缩连 ...

  8. linux文本处理工具-1

    文件内容: cat ,more,less 文件截取:head,tail 按列抽取:cut 排序和统计:sort,wc ----------------------------------------- ...

  9. Linux 文本处理工具(grep sed awk )

    ^test: 以test开头; test$: 以test结尾: ^$: 表示空行,不是空格: . :代表且只代表任意一个字符(其他功能:当前目录,加载文件): \ : 代表转义字符,表示特殊字符: * ...

随机推荐

  1. Pycharm文档模板变量

    点击这里查看JetBrains官方英文源文件 本篇Blog只是搬运外加大概翻译一下. File template variables A file template can contain varia ...

  2. C语言——杂实例

    #include <stdio.h> #include <stdlib.h> #include <string.h> void f (int **p); void ...

  3. Linux的软件包管理

    此博客的环境任意. 主题Linux的软件包管理 一软件管理工具 1编译安装      2rpm包管理          3yum管理 二软件运行和编译 1ABI 应用程序的二进制接口 ABI:Appl ...

  4. 常见算法和数据结构存在的坑(updating)

    数组: c++数组下标都+5会稳. 50005000的别开60006000. 二分: 实数二分可能因为神马精度问题出现了不满足二分序的情况,要小心. 注意二分完后,不能直接用当前数组里存的值,要pd( ...

  5. 深入了解 Flink 网络栈(二):监控、指标和处理背压

    在之前的文章中,我们从高级抽象到底层细节各个层面全面介绍了 Flink 网络栈的工作机制.作为这一系列的第二篇文章,本文将在第一篇的基础上更进一步,主要探讨如何监视与网络相关的指标,从而识别背压等因素 ...

  6. kubernetes集群中移除Node

    例如要在集群中移出node2节点1)在master节点上执行: kubectl drain node2 --delete-local-data --force --ignore-daemonsets ...

  7. Jetson Nano系列教程0:初识Jetson Nano

    关于Jetson Nano Developer Kit Jetson nano搭载四核Cortex-A57 MPCore 处理器,采用128 核 Maxwell™  GPU.支持JetPack SDK ...

  8. BZOJ 4555(第二类斯特林数+NTT)

    传送门 解题思路 数学题,推式子.求\(f(n)=\sum\limits_{i=0}^n\sum\limits_{j=0}^iS(i,j)2^jj!\) 首先可以把\(j\)往前提: \[f(n)=\ ...

  9. python 内置模块-re

    想要在python中使用正则表达式,就需要先导入re模块,正则表达式是一个强大的功能,可以为我们节省很多工作量. 一.元字符: 用一些具有特殊含义的符号表示特定种类的字符或位置.     . 匹配除换 ...

  10. [CSP-S模拟测试ex]题解

    爆零了.少特判见祖宗.还好这场不计入总分. 考场上什么都没想.感觉考试状态又回到了两个月前. A.Antipalindrome 手玩样例,不难发现题目中要求的合法串的充要条件是:对于任意$i \in ...