茂名做网站dyiee,一个自己的网站,公司网站应该怎么做,php网页制作作业目录标题 1、grep1.1 命令格式1.2命令功能1.3命令参数1.4grep实战演练 2、sed2.1 认识sed2.2命令格式2.3常用选项options2.4地址定界2.5 编辑命令command2.6用法演示2.6.1常用选项options演示2.6.2地址界定演示2.6.3编辑命令command演示 3、awk3.1认识awk3.2常用命令选项3.3awk… 目录标题 1、grep1.1 命令格式1.2命令功能1.3命令参数1.4grep实战演练 2、sed2.1 认识sed2.2命令格式2.3常用选项options2.4地址定界2.5 编辑命令command2.6用法演示2.6.1常用选项options演示2.6.2地址界定演示2.6.3编辑命令command演示 3、awk3.1认识awk3.2常用命令选项3.3awk变量3.3.1 内置变量3.3.1.1演示3.3.2自定义变量 awk、grep、sed是linux操作文本的三大利器三者的功能都是处理文本但侧重点各不相同其中属awk功能最强大但也最复杂。grep更适合单纯的查找或匹配文本sed更适合编辑匹配到的文本awk更适合格式化文本对文本进行较复杂格式处理。
1、grep
1.1 命令格式
grep [option] pattern file1.2命令功能
用于过滤/搜索特定字符。可使用正则表达式能多种命令配合使用使用上十分灵活。
1.3命令参数
参数功能-A显示行数除了显示符合范本样式的那一行之外并显示该行之后的内容-B显示行数除了显示符合样式的那一行之外并显示该行之前的内容-C显示行数除了显示符合样式的那一行之外并显示之前后的内容-c统计匹配的行数-e实现多个选项间的逻辑or关系-E扩展的正则表达式-f FILE从FILE获取PATTERN匹配-F相当于fgrep-i --ignore-case忽略字符大小写的差别-n显示匹配的行号-o仅显示匹配到的字符串-q静默模式不输出任何信息-s不显示错误信息-v显示不被pattern匹配到的行相当于[^]反向匹配-w匹配整个单词
1.4grep实战演练 2、sed
2.1 认识sed
sed 是一种流编辑器它一次处理一行内容。处理时把当前处理的行存储在临时缓冲区中称为“模式空间”patternspace 接着用sed 命令处理缓冲区中的内容处理完成后把缓冲区的内容送往屏幕。然后读入下行执行下一个循环。如果没有使诸如‘D’ 的特殊命令那会在两个循环之间清空模式空间但不会清空保留空间。这样不断重复直到文件末尾。文件内容并没有改变除非你使用重定向存储输出或-i。
功能主要用来自动编辑一个或多个文件, 简化对文件的反复操作
2.2命令格式
sed [options] [地址定界] command file (s)2.3常用选项options
参数功能-n不输出模式空间内容到屏幕即不自动打印只打印匹配到的行-e多点编辑对每行处理时可以有多个Script-f把Script写到文件当中在执行sed时-f指定文件路径如果是多个Script换行写-r支持扩展的正则表达式-i直接将处理的结果写入文件-i.bak将处理的结果写入文件之前备份一份
2.4地址定界
不给地址对全文进行处理单地址 #: 指定的行/pattern/被此处模式所能够匹配到的每一行 地址范围 #,##,#/pat1/,/pat2/#,/pat1/ ~步进 sed -n ‘1~2p’ 只打印奇数行 1~2 从第1行一次加2行sed -n ‘2~2p’ 只打印偶数行
2.5 编辑命令command
选项参数d删除模式空间匹配的行并立即启用下一轮循环p打印当前模式空间内容追加到默认输出之后a在指定行后面追加文本支持使用\n实现多行追加i在行前面插入文本支持使用\n实现多行追加c替换行为单行或多行文本支持使用\n实现多行追加w保存模式匹配的行至指定文件r读取指定文件的文本至模式空间中匹配到的行后为模式空间中的行打印行号模式空间中匹配行取反处理
加g表示行内全局替换在替换时可以加一下命令实现大小写转换\l把下个字符转换成小写。\L把replacement字母转换成小写直到\U或\E出现。\u把下个字符转换成大写。\U把replacement字母转换成大写直到\L或\E出现。\E停止以\L或\U开始的大小写转换
2.6用法演示
2.6.1常用选项options演示 匹配到的aa那行会被打印一遍不匹配的行也会打印 -n不显示没有匹配的行 -i直接对文件进行处理
2.6.2地址界定演示
[rootalong ~]# cat demo
aaa
bbbb
AABBCCDD
[rootalong ~]# sed -n p demo #不指定行打印全文
aaa
bbbb
AABBCCDD
[rootalong ~]# sed 2s/b/B/g demo #替换第2行的b-B
aaa
BBBB
AABBCCDD
[rootalong ~]# sed -n 1,2p demo #打印1-2行
aaa
bbbb
[rootalong ~]# sed -n /aaa/,/DD/p demo
aaa
bbbb
AABBCCDD
[rootalong ~]# sed -n 2,/DD/p demo
bbbb
AABBCCDD
[rootalong ~]# sed 1~2s/[aA]/E/g demo #将奇数行的a或A替换为E
EEE
bbbb
EEBBCCDD2.6.3编辑命令command演示
[rootalong ~]# cat demo
aaa
bbbb
AABBCCDD
[rootalong ~]# sed 2d demo #删除第2行
aaa
AABBCCDD
[rootalong ~]# sed -n 2p demo #打印第2行
bbbb
[rootalong ~]# sed 2a123 demo #在第2行后加123
aaa
bbbb
123
AABBCCDD
[rootalong ~]# sed 1i123 demo #在第1行前加123
123
aaa
bbbb
AABBCCDD
[rootalong ~]# sed 3c123\n456 demo #替换第3行内容
aaa
bbbb
123
456
[rootalong ~]# sed -n 3w/root/demo3 demo #保存第3行的内容到demo3文件中
[rootalong ~]# cat demo3
AABBCCDD
[rootalong ~]# sed 1r/root/demo3 demo #读取demo3的内容到第1行后
aaa
AABBCCDD
bbbb
AABBCCDD
[rootalong ~]# sed -n demo #打印行号
1
2
3
[rootalong ~]# sed -n 2!p demo #打印除了第2行的内容
aaa
AABBCCDD
[rootalong ~]# sed s[a-z]\ug demo #将全文的小写字母替换为大写字母
AAA
BBBB
AABBCCDD3、awk
3.1认识awk
awk是一种编程语言用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能是linux/unix下的一个强大编程工具。它在命令行中使用但更多是作为脚本来使用。awk有很多内建的功能比如数组、函数等这是它和C语言的相同之处灵活性是awk最大的优势。
awk其实不仅仅是工具软件还是一种编程语言。不过本文只介绍它的命令行用法对于大多数场合应该足够用了。
3.2常用命令选项
选项功能-F fsfs指定输入分隔符fs可以是字符串或正则表达式-v varvalue赋值一个用户定义变量将外部变量传递给awk-f scripfile从脚本文件中读取awk命令
3.3awk变量
变量内置和自定义变量每个变量前加 -v 命令选项
3.3.1 内置变量
格式
FS 输入字段分隔符默认为空白字符OFS 输出字段分隔符默认为空白字符RS 输入记录分隔符指定输入时的换行符原换行符仍有效ORS 输出记录分隔符输出时用指定符号代替换行符NF 字段数量共有多少字段 N F 引用最后一列 NF引用最后一列 NF引用最后一列(NF-1)引用倒数第2列NR 行号后可跟多个文件第二个文件行号继续从第一个文件最后行号开始FNR 各文件分别计数, 行号后跟一个文件和NR一样跟多个文件第二个文件行号从1开始FILENAME 当前文件名ARGC 命令行参数的个数ARGV 数组保存的是命令行所给定的各参数查看参数
3.3.1.1演示
[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
awkdemo13.3.2自定义变量
自定义变量( 区分字符大小写)
1-v varvalue
① 先定义变量后执行动作print
[rootalong ~]# awk -v namealong -F: {print name:$0} awkdemo
along:hello:world
along:linux:redhat:lalala:hahaha
along:along:love:you② 在执行动作print后定义变量
[rootalong ~]# awk -F: {print name:$0;namealong} awkdemo
:hello:world
along:linux:redhat:lalala:hahaha
along:along:love:you2在program 中直接定义
可以把执行的动作放在脚本中直接调用脚本 -f
[rootalong ~]# cat awk.txt
{namealong;print name,$1}
[rootalong ~]# awk -F: -f awk.txt awkdemo
along hello
along linux
along along