文本字符处理工具

文件查看命令 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
下一篇 2017-02-25

相关推荐

  • 学习试题演练

    1.写一个脚本实现:提示用户给出自己的选择随后显示对应的信息。 区分大小写: if [[ "$option" =~ [Dd][Ii][Ss][Kk] ]];then 2.根据id号来判断用户类型,若没有则提示没有此用户 0:管理员 1-999:系统用户 1000+:登陆用户 不得不提下: bash -n usertype.sh 前期擅用是…

    Linux干货 2016-08-21
  • DNS 笔记

    Ø DNS查询。工作流程如下图         n  客户端的DNS:8.8.8.8 /etc/hosts  14.215.177.38 www.baidu.com n  客户端访问www.baidu.com 不用向DSN服务器发生查询,只需要查询本地的 /e…

    Linux干货 2016-08-15
  • Redis学习手册(持久化)

    一、Redis提供了哪些持久化机制:     1). RDB持久化:     该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘。         2). AOF持久化:     该机制将以日志…

    Linux干货 2015-02-25
  • LINUX的初探

    一般而言,计算机的组成遵循着“冯诺依曼体系结构”。这种结构的体现实质上是一种存储程序的原理,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式来存储。这种结构的要点是:计算机的数制采用二进制;计算机应该按照程序顺序执行。

    2018-03-04
  • 第六周-Vim、计划任务及Shell脚本练习

    一、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; cp /etc/rc.d/rc.sysinit /tmp vim /tmp/rc.sysinit 末行模式输入 :%s@^[[:space:]]\+@#&@g 二、复制/boot/grub/grub.co…

    Linux干货 2017-08-13
  • SElinux

    selinux  配置文件 修改   就要重启 targeted:用来保护常见的网路服务,仅有限进程受到selinux控制,只监控容易被入侵的进程。 targeted  慢慢完善的法律 系统默认使用   targeted     CENTOS6 CENTOS7 ZAI &nbsp…

    Linux干货 2016-09-14