shell脚本(四)

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

时间: 2024-08-21 13:31:31

shell脚本(四)的相关文章

Shell脚本学习指南 [ 第三、四章 ] 查找与替换、文本处理工具

摘要:第三章讨论的是编写Shell脚本时经常用到的两个基本操作.第四章总共介绍了约30种处理文本文件的好用工具. 第三章 查找与替换 概括:本章讨论的是编写Shell脚本时经常用到的两个基本操作:文本查找.文本替换. 3.1  查找文本 如需从输入的数据文件中取出特定的文本行,主要的工具为grep程序.POSIX采用三种不同grep变体:grep.egrep.fgrep整合为单个版本,通过不同的选项,分别提供这三种行为模式.who | grep -F root上面使用-F选项,以查找固定字符串r

关于shell脚本基础编程第四篇

shell脚本基础编程第四篇本章主要内容:函数 函数 function:             function 名称 { 命令 ; } 或 name () { 命令 ; }           定义 shell 函数.               创建一个以 NAME 为名的 shell 函数.当作为一个简单的命令启用时,           NAME 函数执行调用 shell 的上下文中的 COMMANDs 命令.当 NAME           被启用时,参数作为 $1...$n 被传递

老李分享:《Linux Shell脚本攻略》 要点(四)

老李分享:<Linux Shell脚本攻略> 要点(四) 1.IP地址的正则表达式: [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} 2.grep用法 //在多级目录中对文本进行递归检索 [[email protected] program_test]# grep "yang" ./ -Rn ./test.txt:6:laoyang./right.txt:1:1 yang man //忽略大小写匹配 [[email protec

《Linux Shell脚本攻略》 笔记 第四章:高效文本处理

<Linux Shell脚本攻略> 笔记 第四章:高效文本处理 1.IP地址的正则表达式: [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} 2.grep用法 //在多级目录中对文本进行递归检索 [[email protected] program_test]# grep "yang" ./ -Rn ./test.txt:6:laoyang ./right.txt:1:1 yang man //忽略大小写匹配 [[email pr

shell脚本第四篇——常用小脚本

shell脚本第四篇--常用小脚本 1.将系统进程按内存占用大小排列显示出来 # ps -e  -o "%C   : %p : %z : %a"|sort -k5-nr 2.将系统进程按CPU占用大小排列显示 # ps -e  -o "%C   : %p : %z : %a"|sort   -nr 或# ps aux --sort -rss 3.查找当前目录下占用为0字节的文件并删除 # find ./ -type f -size 0 -exec rm -rf {}

shell脚本基础进阶(四)----作业

20150913-15作业 1.描述shell程序的运行原理(可附带必要的图形说明) shell脚本基础进阶(一)----shell介绍 2.总结shell编程中所涉及到的所有知识点(如:变量.语法.命令状态等等等,要带图的哟) shell脚本基础进阶(二)----变量及运算符 3.总结课程所讲的所有循环语句.条件判断的使用方法及其相关示例:(if (jpg|png is not exist):echo "You say a XX") shell脚本基础进阶(三)----流程控制语句

Linux Shell脚本编写——使用结构化命令(四)

命令行参数 向shell脚本传数据的最基本方法是使用命令行参数,命令行参数允许在运行脚本时向命令行添加数据值 读取参数 bash shell会将一些称为位置参数的特殊变量分配给命令行输入的所有参数,甚至包括shell执行的程序的名字,$0是程序名,$1是第一个参数,$2是第二个参数 代码4-1 [email protected]:/data# cat demo1 #!/bin/bash factorial=1 for ((i=1;i<=$1;i++)) do factorial=$[ $fact

shell脚本应用(四)

Shell环境根据命令执行后的返回状态值($?)来判断是否执行成功,当返回值为0是表示成功,否则(非0值)表示失败或者异常.使用专门的测试工具-test命令,可以对特定条件进行测试,并根据返回值来判断条件是否成立(返回值为0时表示条件成立): 使用test测试命令时,包括以下两种形式. test  条件表达式 或者 [ 条件表达式 ] 这两种方式的作用完全相同,但通常后一种形式更为常用,注意中括号括起来时至少要用一空格来分隔. 文件测试: 文件测试的常见选项如下: -d:测试是否为目录(Dire

Linux学习记录(四):Shell脚本

目录 Shell脚本是什么 如何运行Shell脚本 Shell脚本的一些简单语法 Shell脚本 Shell脚本(Shell script),是一种为shell编写的脚本程序.我们所说的shell通常是指shell脚本. 在终端中输入很多命令,我们想把这些命令写到一个文件中去,这时Shell就派上用场了. 如何运行Shell脚本 现有test.sh脚本如下: #!/bin/bash echo "Hello World" 方法一: 方法二: sh test.sh拓展名为sh,那么用sh解