1.正则表达式

^

行起始标志

$

行尾标记

.

匹配任意一个字符

[ ]

匹配包含在[字符]之中的任意一个字符,coo[kl]匹配cook或cool

[^]

匹配除[^字符]的任意一个字符

[-]

匹配[]中范围内任意一个字符

?

匹配之前的项一次或0次

+

匹配之前的项一次或多次

*

匹配之前的项0次或多次

()

创建一个用于匹配的子串

{n}

匹配之前的项n次

{n,m}

指定之前的项所必须匹配的最小次数和最大次数

|

交替-匹配|两边的任意一项

\

转义符可以将上面的符号转义

2.grep

(1)搜索包含特定模式的文本行

[root@cai tmp]# cat .txt
this is a test2 [root@cai tmp]# grep .txt 也可以对多个文件进行搜索:grep .txt .txt .txt
使用正则表达式必须使用egrep

(2)要打印除某行之外所有行

[root@cai tmp]# grep -v  .txt
this is a test2

(3)统计文本或文本中包含匹配字符串的行数

[root@cai tmp]# grep -c  .txt

(4)打印包含匹配字符串的行数

[root@cai tmp]# grep  -n .txt
:

(5)搜索多个文件并找出匹配文本位于哪个文件中

[root@cai tmp]# grep -l  .txt .txt
.txt
.txt

(6)如果进行递归查询,可以使用

grep “text” . -R -n

(7)忽视样式中的大小写(grep -i pattern file)

(8)用grep匹配多个样式

grep -e “pattern1” -e “pattern2”

(9)在grep搜索中指定或排除文件

grep “main()” . -r --exclude “readne”

(10)打印出匹配文本之前或之后的行

要打印匹配某个结果之后的3行,可以使用-A选项

[root@cai tmp]# seq |grep  -A 

要打印匹配某个结果之前的3行,可以使用-B选项

[root@cai tmp]# seq |grep  -B 

要打印匹配某个结果之前以及之后的3行,使用-C选项
[root@cai tmp]# seq |grep -C

3.用cut按列切分文本

cut -f , filename

4.sed

()sed可以替换给定文本中的字符串
sed ‘s/pattern/replace_string’ file
()在默认情况下,sed只会打印替换后的文本,要想保留同时更改,用-i选项
sed -i ‘s/pattern/replace_string’ file
()如果想替换所有内容,在结尾加上参数g
sed ‘s/pattern/replace_string/g’ file
()移除空白行
sed ‘ /^$/d’ file
()直接在文件中进行替换
sed ‘s/PATTERN/replacement’ -i filename\
()组合多个表达式
sed ‘expression’ | sed ‘expression’
=sed ‘expression;expression’
=sed -e ‘expression’ -e ‘expression’

5.awk

脚本基本结构如下所示:
awk ‘BEGIN{ print “start” } pattern {commands} END{print “end” } ’ file
awk ‘BEGIN {statements} {statements} END { end statements}’

6.统计特定文件中的词频

#!/bin/bash
#用途:计算文件中单词的词频 if [ $# -ne ];
then
echo "usage:$0 filename";
exit -
fi filename=$ egrep -o "\b[[:alpha:]]+\b" $filename | \ awk '{ count[$0]++ }
END{ printf("%-14s%s\n","word","count");
for(ind in count)
{ printf("%-14s%d\n",ind,count[ind]) ; }
}'
~
[root@cai shell]# sh word_freq.sh /tmp/.txt
word count
a
this
is

7.按列合并多个文件(paste)

[root@cai tmp]# paste .txt .txt
this is a test2 cairui
xijinpng
aiyinsitan

8.打印文件或行中的第n个单词或列

下面打印第5列
awk ‘{ print $ }’ filename

9.打印行或样式之间的文本

(1)[root@cai tmp]# seq 100|awk 'NR==4,NR==8'

(2)4awk ‘NR==M,NR==N’ filename

5

6

7

8

Shell-4-让文本飞的更多相关文章

  1. Linux Shell 自动化之让文本飞

    Linux Shell 自动化之让文本飞 一.前言: ​ 作者之前在一家 IDC 从事运维兼职工作,后来因某些原因辞职开始 Python 爬虫数据分析.因为这些经历以及后续时间积累下的经验,发现好像自 ...

  2. shell脚本--显示文本内容

    shell脚本显示文本内容及相关的常用命令有cat.more.less.head.tail.nl 首先是cat,cat最常用的就是一次性显示文件的所有内容,如果一个文件的内容很多的话,那么就不是很方便 ...

  3. shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中

    shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中 利用shell脚本将文本数据导入到mysql中 需求1:处理文本中的数据,将文本中的数据插入到mys ...

  4. linux —— shell 编程(文本处理)

    导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 基本文本处理 流编辑器sed aw ...

  5. shell 命令合并文本

    之前想把代码打印出来看来着,后来合并完之后放在word里发现有2000多页,然后放弃了~anyway,这个命令还是挺有用的. 比如我有文本a001.dat, a002.dat, a003.dat .. ...

  6. Shell命令之文本操作

    前言 在Linux中,文本处理操作是最常见的,应用非常广泛,如果能熟练掌握,可以大大提高开发效率. awk/sed/grep是文本操作领域的“三剑客”,学会了这3个命令就可以应对绝大多数文本处理场景. ...

  7. shell命令技巧——文本去重并保持原有顺序

    简单来说,这个技巧相应的是例如以下一种场景 假设有文本例如以下 cccc aaaa bbbb dddd bbbb cccc aaaa 如今须要对它进行去重处理.这个非常easy,sort -u就能够搞 ...

  8. Shell正则表达式和文本处理工具

    作业一:整理正则表达式博客 一.什么是正则 正则就是用一些具有特殊含义的符号组合而成(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则. 通配符是由shell解释得. ...

  9. shell编程之文本与日志过滤

    1:grep命令: grep -v  "char"  file_name 匹配不包括"char"的文本 grep -n -w "char" ...

随机推荐

  1. MySQL 更新失效

    create table t(id int not null PRIMARY key,c int default null) engine=innodb;insert into t(id,c)valu ...

  2. 【转】js获取对象的所有属性和方法

    //有时候需要知道一个js对像的所有属性和方法来帮助调试,下面是再网上找到的一个比较给力的方法 function displayProp(obj){ var names=""; f ...

  3. web页面导出到Excel乱码解决

    引言: 前几天 在做web项目的时候 需要导出页面上的数据 到Excel里面 但有的时候出现乱码(有de时候不出现 很奇怪) 原来的代码是这样的: HttpContext.Current.Respon ...

  4. HTML5的local storage

    function clickLogin(){ var userName = $("#user").val().trim(); // console.log(userName); / ...

  5. RabbitMQ 消息队列 安装及使用

    RabbitMQ 消息队列安装: linux版本:CentOS 7 安装第一步:先关闭防火墙 1.Centos7.x关闭防火墙 [root@rabbitmq /]# systemctl stop fi ...

  6. 第十四章 Spring MVC的工作机制与设计模式(待续)

    Spring MVC的总体设计 Control设计 Model设计 View设计 框架设计的思考 设计模式解析之模版模式

  7. PHP实现常用排序算法(含示意动图)

    目录 1 快速排序 2 冒泡排序 3 插入排序 4 选择排序 5 归并排序 6 堆排序 7 希尔排序 8 基数排序 总结 作为phper,一般接触算法的编程不多. 但基本的排序算法还是应该掌握. 毕竟 ...

  8. SQLServer SDK

    https://www.cnblogs.com/Leo_wl/p/3451865.html 回到目录 SQLSERVER一些公用DLL的作用解释 如果你的SQLSERVER安装在C盘的话,下面的路径就 ...

  9. xcode 编译报错“Cannot create __weak reference in file using manual reference counting”解决办法<转>

    http://blog.csdn.net/ouq68/article/details/51003876 解决方法: Please set ‘Weak References in Manual Reta ...

  10. 7-EasyNetQ之Request & Response

    EasyNetQ也支持Request/Response这种方式的消息模式.这种方式很容易在client/Server应用中执行,客户端发送一个请求到服务器,服务器然后处理请求后返回一个响应.和传统的R ...