- :忽略正则表达式中特殊字符的原有含义 。
- ^:匹配正则表达式的开始行 。
- $ :匹配正则表达式的结束行 。
- <:从匹配正则表达 式的行开始 。
- >:到匹配正则表达式的行结束 。
- [ ]:单个字符,如[A]即A符合要求。
- [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求。
- .:所有的单个字符 。
- * :有字符,长度可以为0 。
# 从.txt文件中查找包含'a'字符串的文本文件grep 'a' *.txt --color=auto# 搜索包含连续4个字符的文件grep '[a-z]{4}' *.txt1234
三 、 sed 从文件中查找sed 是利用脚本来处理文本文件,可以自动编辑一个或多个文件,简化重复操作 。命令格式sed [-nefr] [操作]
参数说明
- -e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件 。
- -f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件 。
- -h或--help 显示帮助 。
- -n或--quiet或--silent 仅显示script处理后的结果 。
- -V或--version 显示版本信息 。
- a :新增,a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
- c :取代,c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
- d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
- i :插入,i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
- p :打印,亦即将某个选择的数据印出 。通常 p 会与参数 sed -n 一起运行~
- s:取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
sed -n '2p' sed.txt 打印第2行sed -n '1,3p' sed.txt 打印1~3行sed -n '1,3p' sed.txt >sed.tmp1~3行输出到sed.tmp文件里sed -n '1,$p' sed.txt显示全文sed -n '1p' sed.txt打印首行sed -n '$p' sed.txt打印最后一行sed '2p' sed.txt输出全部文本,然后输出第2行sed -n '/should/'p sed.txt 查找should的行sed -n '/should/=' sed.txt输出匹配的行号sed -n '/./'p sed.txt 特殊字符查询,需要进行转义sed '1,3d' sed.txt删除1~3行sed '/should/d' sed.txt 删除包含should的行sed 's/PS/ps/' sed.txt替换每行第一个单词sed 's/PS/ps/g' sed.txt全文替换sed '1,3 s/should/SHOULD/g' sed.txt 指定行替换sed '1 s/should/SHOULD/g' sed.txt 指定行范围替换控制字符输入方式:^M1.Ctrl+v2.M3.释放Ctrl123456789101112131415161718192021
四、awk与sed 相比,awk 倾向于一行中分成数个字段来处理,适合处理小型的文本数据 。awk处理过程: 依次对每一行进行处理,然后输出
awk命令样式
- awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file
- [-F|-f|-v] 大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=value
- ' ' 引用代码块
- BEGIN 初始化代码块,在对每一行进行处理之前,初始化代码,主要是引用全局变量,设置FS分隔符
- // 匹配代码块,可以是字符串或正则表达式
- {} 命令代码块,包含一条或多条命令
- ; 多条命令使用分号分隔
- END 结尾代码块,在对每一行进行处理之后再执行的代码块,主要是进行最终计算或输出结尾摘要信息 。
- $0 表示整个当前行
- $1 每行第一个字段
- NF 字段数量变量
- NR 每行的记录号,多文件记录递增
- FNR 与NR类似,不过多文件记录不递增,每个文件都从1开始
- t 制表符
- n 换行符
- FS BEGIN时定义分隔符
- RS 输入的记录分隔符,默认为换行符(即文本是按一行一行输入)
- ~ 匹配,与==相比不是精确比较
- !~ 不匹配,不精确比较
- == 等于,必须全部相等,精确比较
- != 不等于,精确比较
- &&逻辑与
- || 逻辑或
- + 匹配时表示1个或1个以上
- /[0-9][0-9]+/ 两个或两个以上数字
- /[0-9][0-9]*/ 一个或一个以上数字
- FILENAME 文件名
- OFS 输出字段分隔符,默认也是空格,可以改为制表符等
- ORS 输出的记录分隔符,默认为换行符,即处理结果也是一行一行输出到屏幕
- -F'[:#/]' 定义三个分隔符
推荐阅读
- C语言头文件路径剖析
- 从LINUX 系统层次看PostgreSQL 内存消耗
- Linux 原来是这么管理内存的
- Linux必备知识之文件系统
- linux服务器内存异常,究竟在哪消耗了2.5G?
- Linux网络API - socket地址API
- 简单三步完成Excel多文件汇总
- Kali linux 安装教程
- Linux操作系统的作业调度和进程调度
- 将远程服务器上的文件备份到本地的三种工具