shell脚本(四)

(7)tr命令

#实现字符转换功能

#-c string:反选string字符集,即除了该字符串的所有字符集

#-d string:删除string中出现的所有字符

#-s:删除所有重复出现的字符序列,只保留一个

#删除所有数字

tr -d "[[:digit:]]" < name.txt

tr -d 0-9 < name.txt

#所有小写字母转换成大写字母

tr  "[a-z]" "[A-Z]" < name.txt

tr  "[[:lower:]]" "[[:upper:]]" < name.txt

#-c用法,将所有非26个字母替换成换行符,并且重复出现的换行符压缩成1个换行符

tr -cs "[a-z][A-Z]" "[\n]" < name.txt

#支持使用字符*数字模式,如n*4代表n出现4次

#-s是将连续重复出现的字母、数字压缩成1个

tr -s "[a-z][A-Z],[[:digit:]]" < num.txt

#结果同1行的test,t和t并不算是重复的

3、正则表达式

(1)匹配符:"*"、"^"、"."、"$"等

"*":0个或多个在*字符之前的那个普通字符

".":匹配任意字符

"^":匹配行首,放在[]字符集里面表示取反

"$":匹配行末

"[]":匹配字符集

"\":转义符,屏蔽一个元字符的特殊意义

"\<\>":精确匹配符号

"\{n\}":匹配前面字符出现n次

"\{n,\}":匹配前面字符至少出现n次

"\{n,m\}":匹配前面字符出现n-m次

(2)扩展:"?"、"+"、"()"、"|"

"?":匹配0个或1个在?字符之前的那个普通字符

"+":匹配1个或多个在+字符之前的那个普通字符

"()":表示一个字符集

"|":表示"或",匹配一组可选的字符

(3)grep命令

#支持正则表达式的多用途文本搜索工具

#-c:只输出匹配行的数量;-i:搜索时忽略大小写;-h:查询多文件时不显示文件名;

#-l:只列出符合匹配的文件名,而不列出具体的匹配行;-n:列出匹配及行号;

#-s:不显示不存在或无匹配文件的错误信息;-v:显示不包含匹配文本的所有行;

#-w:匹配事词;-x:匹配事行;-r:递归查询,搜索子目录;-q:禁止输出任何结果,以退出

#状态来表示搜索是否成功;-b:打印匹配行距文件头的偏移量,以字节为单位;

#-o:与-b结合使用,打印匹配词距文件头的偏移量,以字节为单位;-E:使用扩展表达式

#-F:不使用正则表达式,以字符串的字面意思进行搜索

#需要特别注意的是,所说的出现次数是指连续出现,而不是总共出现的次数!!!

#"*"用法,字母m出现至少出现0次

grep "nam*3" name.txt

#"."用法,搜索"na任意字符3"

grep "na.3" name.txt

#搜索以A开头的行,并输出行号

grep -n ^A a.txt

#"$"用法,搜索以10结尾的行

grep 10$ name.txt

#"[]"用法,搜索一个任意小写字母后跟一个任意数字的行

grep [a-z][0-9] name.txt

#"\"用法,搜索以*号开头的行

grep ^\* name.txt

#"\<\>"用法,搜索出现name3的行

grep "\<name3\>" bkname.txt

#"\<n,\>"用法,搜索数字0至少出现5次

grep "0\{5,}" bkname.txt

#"\<n,m\>"用法,搜索数字7出现2次到3次的行

grep  "7\{2,3\}" name.txt

#"?"、"+"、"()"和"|"属于正则表达式扩展,需要使用-E参数

#"?"用法,搜索包含nu或者num的行

grep -E "num?" bkname.txt

#"+"用法,搜索字母t出现至少1次的行

grep -E "t+" bkname.txt

#"()"和"|"用法结合,搜索包含nu或者num的行

grep -E "(nu|num)" bkname.txt

#多文件搜索包含name1的行,并输出行号

grep name1 name.txt num.txt

#显示匹配行前后2行

grep -2 name2 name.txt

#显示匹配行的

grep -A2 name2 name.txt

#-c:用法,统计空白行数量

grep -c ^$ /etc/httpd/conf/httpd.conf/

#-i:忽略大小写

grep -i name bkname.txt

#-h:多文件查询不显示文件名

grep -h test bkname.txt num.txt

#-n:显示匹配行和行号

grep -n test bkname.txt

#-w:查找的字符串必需为完整的单词;

#-x:显示完全符合要求的行,而且所搜索的字符串必需是单独一行

grep -w test bkname.txt

grep -x test bkname.txt

转载于:https://blog.51cto.com/1055745601/1660406

shell脚本(四)相关推荐

  1. 每日shell脚本四——鸡兔同笼

    [root@qiang ~]#vim rc.sh #!/bin/bash head=$1 foot=$2 rabbit=$[(foot-head-head)/2] chook=$[head-rabbi ...

  2. shell脚本四剑客--sed的应用

    sed的介绍 sed是Linux下一款功能强大的非交互流式文本编辑器,可以对文本文件进行增.删.改.查等操作,支持按行.按字段.按正则匹配文本内容,灵活方便,特别适合于大文件的编辑 sed在处理文本时 ...

  3. 第二十四章 SHELL脚本-CENTOS7.5知识

    shell脚本(四) 程序结构: IF结构.for结构.while结构.case结构 1.分支结构 2.分支示例 case语句编写 #!/bin/bash case $1 in anquan) ech ...

  4. 多宽带联网(三) OpenWrt中使用cURL方法编写Shell脚本自动完成网页宽带认证登录(校园网认证登录解决方案) 使用awk命令

    对于非PPPoE方式认证,而是采用网页认证登录的宽带用户(如校园网).采用<多宽带联网(二)>中的方法一个一个接口进行认证登录过于繁琐.本节将采用Shell脚本和cURL方法,模拟人工认证 ...

  5. 教你如何编写shell脚本

    一.shell脚本编程规范 在一些复杂的Linux维护工作,大量重复性的输入与交互操作不但费时费力,而且容易出错,而编写一个恰好片的shell脚本程序,可以批量处理.自动化地完成一系列维护任务,大大减 ...

  6. shell脚本详解(四)——循环语句之while循环和until循环(附加例题及解析)

    shell脚本详解(四)--循环语句之while循环和until循环 一.until循环 1.循环结构 2.例题 二.while循环 1.循环结构 2.例题(每个人的思路不同,会导致脚本内容不一样,这 ...

  7. Linux Shell脚本入门教程系列之(十四) Shell Select教程

    本文是Linux Shell脚本系列教程的第(十四)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 在上一篇文章:Linux Shell系列教程之(十三)Shell分支语句 ...

  8. Linux Shell脚本入门教程系列之(四)Shell注释

    本文是Linux Shell脚本系列教程的第(四)篇,更多shell教程请看:Linux Shell脚本系列教程 与许多的编程语言一样,Shell中也有注释符号,继上一篇之后,今天就为大家来介绍下Sh ...

  9. linux分支结构,实验四 Shell脚本中的分支结构

    实验四 Shell脚本中的分支结构 #实验内容: ###一.if分支结构 •if结构是最基本的分支结构类型. •使用if结构时,只有满足某个条件才会执行某些语句,而在不满足此条件的情况下执行其他语句. ...

  10. linux 脚本编写 -eq,关于shell脚本基础编程第四篇

    shell脚本基础编程第四篇 本章主要内容:函数 函数 function: function 名称 { 命令 ; } 或 name () { 命令 ; } 定义 shell 函数. 创建一个以 NAM ...

最新文章

  1. 导入导出Android手机文件
  2. 向oracle中导入*.csv文件
  3. Pyppeteer库之四:Pyppeteer的页面操作(下)
  4. 各linux版本比较
  5. P1092虫食算-深度优先搜索+玄学剪枝
  6. 视觉智能产品发布 阿里云这项世界第一的技术现在人人可用
  7. oracle恢复关系,SCN与Oracle数据库恢复的关系–补充
  8. 【ROS学习】ROS中四元数与欧拉角的转换
  9. 【朝花夕拾】【编程基础】一 存储单位
  10. oracle lpad函数有中文,oracle lpad函数和rpad函数
  11. 使用Universal Image Loader- Image can't be decoded
  12. android 闪光灯程序,如何在Android中以编程方式打开前闪光灯?
  13. 白话数字签名(2)——软件设备
  14. LSTM时间序列预测MATLAB代码模板(无需调试)
  15. 编程时java找不到文件_java.io.FileNotFoundException:系统找不到指定的文件
  16. quectel模块增加发送功率流程
  17. FOTA与OTA区别在哪?
  18. Jquery入门到精通-任亮-专题视频课程
  19. 极简主义的思想内核-奥卡姆剃刀原则
  20. python 解析 eml文件

热门文章

  1. 简单的汉字和十六进制转换
  2. redis如何进行分库存储和选择模糊清除缓存
  3. dvwa学习笔记之xss
  4. VSCode设置中文语言
  5. openstack安装newton版本dashboard+cinder(六)
  6. gcc 混合连接动态库和静态库
  7. SQLite不同插入方法的效率对比测试
  8. 百度编辑器ueditor获取不到内容?请把form放在table等其他元素最外面
  9. jQuery自定义右键菜单
  10. Sailfish预研结果