网站建设需求调研报告,jsp做网站都可以做什么,网站开发 所有权,外贸网站推广哪个比较好目录
grep
什么是grep#xff1f;
grep实例演示
命令参数#xff1a;
案例演示#xff1a;
sed
概念#xff1a; 常用选项#xff1a;
案例演示#xff1a;
awk
概念#xff1a;
awk常用命令选项#xff1a;
awk变量#xff1a;
内置变量
自定义变量
a…目录
grep
什么是grep
grep实例演示
命令参数
案例演示
sed
概念 常用选项
案例演示
awk
概念
awk常用命令选项
awk变量
内置变量
自定义变量
awk的简单案例
在“a b c d”的d后面插入三个字符
统计tcp连接状态数量 统计日志中状态码非200的IP的次数 grep
什么是grep
Linux系统中grep命令是一种强大的文本搜索工具它能使用正则表达式搜索文本并把匹配的行打印出来匹配到的标红。grep全称是Global Regular Expression Print表示全局正则表达式版本它的使用权限是所有用户。
grep的工作方式是这样的它在一个或多个文件中搜索字符串模板。如果模板包括空格则必须被引用模板后的所有字符串被看作文件名。搜索的结果被送到标准输出不影响原文件内容。
grep可用于shell脚本因为grep通过返回一个状态值来说明搜索的状态如果模板搜索成功则返回0如果搜索不成功则返回1如果搜索的文件不存在则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。
egrep grep -E扩展的正则表达式 除了 , , \b 使用其他正则都可以去掉\
grep实例演示
命令参数 -A显示行数除了显示符合范本样式的那一列之外并显示该行之后的内容。 -B显示行数除了显示符合样式的那一行之外并显示该行之前的内容。 -C显示行数除了显示符合样式的那一行之外并显示该行之前后的内容。 -c统计匹配的行数 -e 实现多个选项间的逻辑or 关系 -E扩展的正则表达式 -f FILE从FILE获取PATTERN匹配 -F 相当于fgrep -i --ignore-case #忽略字符大小写的差别。 -n显示匹配的行号 -o仅显示匹配到的字符串 -q 静默模式不输出任何信息 -s不显示错误信息。 -v显示不被pattern 匹配到的行相当于[^] 反向匹配 -w 匹配 整个单词 案例演示 sed
概念 sed 是一种流编辑器它一次处理一行内容。处理时把当前处理的行存储在临时缓冲区中称为“模式空间”patternspace 接着用sed 命令处理缓冲区中的内容处理完成后把缓冲区的内容送往屏幕。然后读入下行执行下一个循环。如果没有使诸如‘D’ 的特殊命令那会在两个循环之间清空模式空间但不会清空保留空间。这样不断重复直到文件末尾。文件内容并没有改变除非你使用重定向存储输出或-i。 功能主要用来自动编辑一个或多个文件, 简化对文件的反复操作 常用选项 -n不输出模式空间内容到屏幕即不自动打印只打印匹配到的行 -e多点编辑对每行处理时可以有多个Script -f把Script写到文件当中在执行sed时-f 指定文件路径如果是多个Script换行写 -r支持扩展的正则表达式 -i直接将处理的结果写入文件 -i.bak在将处理的结果写入文件之前备份一份 案例演示 [rootalong ~]# cat demo aaa bbbb AABBCCDD [rootalong ~]# sed /aaa/p demo #匹配到的行会打印一遍不匹配的行也会打印 aaa aaa bbbb AABBCCDD [rootalong ~]# sed -n /aaa/p demo #-n不显示没匹配的行 aaa [rootalong ~]# sed -e s/a/A/ -e s/b/B/ demo #-e多点编辑 Aaa Bbbb AABBCCDD [rootalong ~]# cat sedscript.txt s/A/a/g [rootalong ~]# sed -f sedscript.txt demo #-f使用文件处理 aaa bbbb aaBBCCDD [rootalong ~]# sed -i.bak s/a/A/g demo #-i直接对文件进行处理 [rootalong ~]# cat demo AAA bbbb AABBCCDD [rootalong ~]# cat demo.bak aaa bbbb AABBCCDD awk
概念 awk是一种编程语言用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能是linux/unix下的一个强大编程工具。它在命令行中使用但更多是作为脚本来使用。awk有很多内建的功能比如数组、函数等这是它和C语言的相同之处灵活性是awk最大的优势。 awk常用命令选项 -F fsfs指定输入分隔符fs可以是字符串或正则表达式如-F: -v varvalue赋值一个用户定义变量将外部变量传递给awk -f scripfile从脚本文件中读取awk命令 awk变量
变量内置和自定义变量每个变量前加 -v 命令选项
内置变量
格式 FS 输入字段分隔符默认为空白字符 OFS 输出字段分隔符默认为空白字符 RS 输入记录分隔符指定输入时的换行符原换行符仍有效 ORS 输出记录分隔符输出时用指定符号代替换行符 NF 字段数量共有多少字段 $NF引用最后一列$(NF-1)引用倒数第2列 NR 行号后可跟多个文件第二个文件行号继续从第一个文件最后行号开始 FNR 各文件分别计数, 行号后跟一个文件和NR一样跟多个文件第二个文件行号从1开始 FILENAME 当前文件名 ARGC 命令行参数的个数 ARGV 数组保存的是命令行所给定的各参数查看参数
演示 [rootalong ~]# cat awkdemo hello:world linux:redhat:lalala:hahaha along:love:youou [rootalong ~]# awk -v FS: {print $1,$2} awkdemo #FS指定输入分隔符 hello world linux redhat along love [rootalong ~]# awk -v FS: -v OFS--- {print $1,$2} awkdemo #OFS指定输出分隔符 hello---world linux---redhat along---love [rootalong ~]# awk -v RS: {print $1,$2} awkdemo hello world linux redhat lalala hahaha along love you [rootalong ~]# awk -v FS: -v ORS--- {print $1,$2} awkdemo hello world---linux redhat---along love--- [rootalong ~]# awk -F: {print NF} awkdemo 2 4 3 [rootalong ~]# awk -F: {print $(NF-1)} awkdemo #显示倒数第2列 hello lalala love [rootalong ~]# awk {print NR} awkdemo awkdemo1 1 2 3 4 5 [rootalong ~]# awk END{print NR} awkdemo awkdemo1 5 [rootalong ~]# awk {print FNR} awkdemo awkdemo1 1 2 3 1 2 [rootalong ~]# awk {print FILENAME} awkdemo awkdemo awkdemo awkdemo [rootalong ~]# awk BEGIN {print ARGC} awkdemo awkdemo1 3 [rootalong ~]# awk BEGIN {print ARGV[0]} awkdemo awkdemo1 awk [rootalong ~]# awk BEGIN {print ARGV[1]} awkdemo awkdemo1 awkdemo [rootalong ~]# awk BEGIN {print ARGV[2]} awkdemo awkdemo1 awkdemo1 自定义变量 -v varvalue [rootalong ~]# awk -v namealong -F: {print name:$0} awkdemo along:hello:world along:linux:redhat:lalala:hahaha along:along:love:you awk的简单案例
在“a b c d”的d后面插入三个字符 统计tcp连接状态数量 统计日志中状态码非200的IP的次数