文本字符处理工具

文件查看命令 cat,tac,rev
cat [options] [file]
  •     -E:显示行结束符
  •     -n:显示行号
                   nl file 也能实现相同的功能
  •     -b:显示非空行号
  •     -A:显示所有控制字符
  •     -s:压缩连续的空行成一行
tac 逆序显示,和cat相反

more:分页查看文件
  more [options ..] file..
    -d:显示翻页及退出提示

less:一页一页的查看文件或者stdin输出
   /文本 搜索 文本
   n/N 跳到下一个或上一个匹配
   less命令是man命令使用的分页器

head:显示文本前几行内容,默认显示10行,读10行
打印10行
   head [options] [file]
     options:
  •        -c #: 显示前多少个字节
  •        -n #: 显示前几行

tail:从文本末尾开始显示内容,默认后10行
  tail [options] [file]   
    options:
  •       -c #:取后几个字节
  •       -n #:取后几行
  •       -f  跟踪文件的 变化,不退出,动态显示文件的变化
               tail -f -n0 只显示变化的部分
               tail -f -n0& 转入后台执行,释放终端资源,jobs(查看后台执行程序的编号), fg 1(将后台程序转入前台)

cut:按列截取文本内容
  cut [options] [file]
    options:
      -d[characters] :指定分隔符,默认tab
      -f#: 指定字段
        #:显示某一列
        #,#离散的几列
        #-#连续的列
      -c 按字符切割
      –output-delimiter=string:指明输出分隔符
echo abcd | rev 倒序显示

wc:word count
  wc [options] [file]
    默认显示:xx行数 xxx单词数 xxx字节数 xx文件名
    options:
      -l 显示行数
      -w 显示单词数
      -c 显示字节数
      -m 显示字符数

sort 文本排序
  sort [options] [fil+e]
  •     -n 按数字大小排序
  •     -t character指定分隔符
  •     -k # 指定某一列
  •     -r 逆序排序
  •     -f 忽略大小写
  •     -u 重复的行只显示一次


uniq 报告或显示重复的行(连续行重复才算连续,断行重复不算连续)
  uniq [options] [file]
  -c 显示每行重复出现的次数
  •   -d 只显示重复过的行
  •   -u 仅显示未重复的行
    (连续且完全相同方为重复)

diff 比较两个文件有什么区别、生成补丁文件
  diff [option] [file1] [file2]
     diff -u f1 f2 > patch.txt

patch打补丁
  patch -b f1 < patch.txt 或者patch -b f1 patch.txt

grep :文本过滤
     grep,egrep,fgrep(不支持正则表达式)
    作用:文本搜索工具,根据用户指定的“模式”对目标进行逐行匹配,打印匹配到的行。
    grep [options] pattern [file]
      options:
  •         –color=auto 对匹配到行显示颜色
  •         -v 只显示未匹配到的行
  •         -i 忽略字符大小写
  •         -e 或者,连接不同的匹配条件
  •         -n 对匹配到的行显示行号
  •         -c 显示有多少行符合匹配条件
  •         -o 只显示匹配到的行
  •         -q 静默模式,不输出任何信息
  •         -A #:after显示匹配到行的并显示后续三行
  •         -B #:before:显示匹配到的行并显示前三行
  •         -C #:context:显示匹配到的行并显示前后各三行
  •         -w:匹配整个单词
  •         -E:扩展正则表达式
  •         -F:fgrep不支持正则表达式

正则表达式:由一些特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能。

元字符分类:
  字符匹配:
  •     . :匹配任意单个字符
  •     []: 匹配指定范围内的字符
  •     [^]:匹配指定范围外的字符
  •     [:alnum:] 字母和数字
  •     [:alpha:] 字母
  •     [:lower:] 小写字母
  •     [:upper:] 大写字母
  •     [:blank:] 空白字符(空格和制表符)
  •     [:space:] 水平和垂直的空白字符
  •     [:cntrl:] 不可打印的控制字符
  •     [:print:] 可打印的字符
  •     [:digit:] 十进制数字
  •     [:graph:] 可打印的非空白字符
  •     [:punct:] 标点符号
  •     [:xdigit:] 十六进制数字cl

  匹配次数:
  •     * 匹配前面的字符任意次
  •       贪婪模式,尽可能多的匹配 
  •     \?匹配0或一次
  •     \+匹配前面字符一次或者更多次
  •     \{#\}匹配前面字符#次
  •     \{m,n\}:匹配前面的字符至少m次,至多n次
  •     \{,n\}:匹配前面的字符至多n次
  •     \{n,\}匹配前面的字符至少n次

注:man 7 regex:正则表达式相关信息

原创文章,作者:switch,如若转载,请注明出处:http://www.178linux.com/70035

赞 (0)
switchswitch
上一篇 2017-02-25 15:43
下一篇 2017-02-25 17:33

相关推荐

  • rsyslog+mysql+loganalyzer 搭建日志服务器及监控

    rsyslog 日志:历史事件; 历史事件:时间、地点、事件; syslog: klogd:kernel yslogd:system(application) 事件记录格式:日期时间 主机 进程[pid]:事件内容; C/S架构;通tcp或udp协议的服务完成日志记录的传送; rsyslog: rsyslog的特性: – 多线程; –…

    Linux干货 2017-01-10
  • 第四周

    第四周blog 第四周blog 1 复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 cp -r /etc/skel /home/tuser1 ; chmod -R go-r /home/tuser…

    Linux干货 2016-12-23
  • python 10第一周博客作业

    1. 修改提示符格式 PS1=”\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]” 2.命令别名:alias NAME=’VALUE’   如果想永久有效,要定义在配置文件中 仅对当前用户:~/.bashrc   对所有用户有效:/etc/bashrc 3.日期和时间:相关命令 d…

    Linux干货 2018-03-17
  • LVM的管理和使用

    LVM的管理和使用

    Linux干货 2017-10-27
  • 搭建一套LVS-DR模型的高性能集群(LVS-DR+Nginx+Mariadb+Nfs+php-fpm+wordpress)

    架构简介 参加马哥linux培训一周了,自己感觉每天都进步很多,现在来说说这个架构,也是架构师第一周的作业第二题。搭建一套LVS-DR模型的高性能集群,做了两天终于完成并实现了这个架构,我设计的架构图如下所示: 此架构主要是用ipvsadm来实现高性能集群,Realserver(RS1,RS2)安装配置nginx,RS服务器分别配置了一个内网,一个外网。正常…

    Linux干货 2016-12-06
  • Redis 3.0.0正式版发布,全新的分布式高可用数据库

    Redis 3.0.0 正式版终于到来了!最重要的新特性是集群(Redis Cluster),提供Redis功能子集(比如不支持多数据库)的分布式、容错的实现(最多支持1000结点)。   Salvatore 'antirez' Sanfilippo在Google Groups里表示,这是Redis的重要时刻。“我相信今天的Redis 3.0…

    Linux干货 2015-04-03