当前位置: 首页 > news >正文

七牛镜像存储 wordpress 插件湖北网站seo

七牛镜像存储 wordpress 插件,湖北网站seo,html5 手机网站模版,做同城购物网站有什么优势吗目录 一、正则简介 1.正则表达式分两类: 2.正则表达式的意义 二、Linux三剑客简介 1.文本处理工具,均支持正则表达式引擎 2.正则表达式分类 3.基本正则表达式BRE集合 4.扩展正则表达式ere集合 三、grep 1.简介 2.实践 3.贪婪匹配 四、sed …

目录

一、正则简介

1.正则表达式分两类:

2.正则表达式的意义

二、Linux三剑客简介

1.文本处理工具,均支持正则表达式引擎

2.正则表达式分类

3.基本正则表达式BRE集合

4.扩展正则表达式ere集合

三、grep

1.简介

2.实践

3.贪婪匹配

四、sed

1.sed简介

2.输出文件的第2,3行的内容

5.替换

6.写入对应行

7.实例

五、awk

1.awk基础

2.举例

3.NF和NR

4.字符串占位

5.awk参数

6.awk变量

7.awk的分隔符

8.awk的变量


一、正则简介

1.正则表达式分两类:

基本正则表达式:BRE

扩展正则表达式:ERE

2.正则表达式的意义

  • 处理大量字符串
  • 处理文本

通过特殊符号的辅助,可以让linux管理员快速过滤、替换、处理所需要的字符串、文本,让工作高效。

通常Linux运维工作,都是面临大量带有字符串的内容,如:

  • 配置文件
  • 程序代码
  • 命令输出结果
  • 日志文件

正则表达式应用广泛,Linux仅受三剑客(sed、awk、grep)支持,其他命令无法使用

通配符是大部分普通命令都支持的,用于查找文件或者目录,而正则表达式 是通过三剑客命令在文件(数据流)中过滤内容。


二、Linux三剑客简介

1.文本处理工具,均支持正则表达式引擎

  • grep:文本过滤工具,(模式:pattern)工具
  • sed:stream editor,流编辑器:文本编辑工具
  • awk:Linux的文本报告生成器(格式化文本),Linux上是gawk

2.正则表达式分类

Linux三剑客主要分两类

  • 基本正则表达式(BRE)

BRE对应元字符有^$.[]*

  • 扩展正则表达式(ERE)

ERE在BRE基础上,增加上 (){}?+|等字符

3.基本正则表达式BRE集合

  • 匹配字符
  • 匹配次数
  • 位置锚定

4.扩展正则表达式ere集合

扩展正则表达式必使用grep -E才能生效


三、grep

1.简介

作用:文本搜索工具,格局用户指定的"模式(过滤条件)"对目标文本逐行进行匹配检查,打印匹配到的行

模式:有正则表达式的元字符及文本字符所编写出的过滤条件;

语法:

2.实践

cat /etc/passwd > ./passwd.txt grep -i "root" passwd.txt

反选

grep -i "root" passwd.txt -v -c 
root@ou-virtual-machine:~# grep -i "root" passwd.txt -v

找空行

grep '^$' passwd.txt -n

过滤注释行

grep '^#' passwd.txt -v -n

或者

grep '^[a-zA-Z]' passwd.txt -n

匹配w+前一个任意字符,或者w+后一个任意字符

grep 'w.' passwd.txt 
grep '.w' passwd.txt

3.贪婪匹配

grep ".*e" passwd.txt

+号匹配1次或者多次

grep -E "w+" passwd.txt -n

复合实例


四、sed

1.sed简介

sed是Stream Editor(字符流编辑器)的缩写,简称流编辑器。

sed是操作、过滤和转换 文本内容的强大工具。

常用功能包括结合正则表达式对文件实现快速增删改查,其中穿功能中最常用的两大功能是过滤(过滤指定字符串)、取行(取出指定行)。

由于sed还会输出没匹配到的字符行,我们需要-n来处理

常用参数

sed的内置命令字符用于文件进行不同的操作功能,如对文件增删改查

sed常用内置命令字符:

sed匹配范围

2.输出文件的第2,3行的内容

p为打印的意思

sed -n '2,3p' passwd.txt

如果不加-n那么不匹配的也会输出

3.匹配root字符串

sed -n '/root/p' passwd.txt

4.删除的问题

sed '/root/d' passwd.txt

但是查看文件却发现root字符串所在的行还在文件内

这里是因为sed删除的 是内存中的内容,并没有真正对文件内容进行操作。

写入文件加-i

5.替换

sed "s/www/nihaoshijie/g" passwd.txt.bak

但文件内容还是没用修改

-i参数写入文件内

sed "s/www/nihaoshijie/g" passwd.txt.bak -i

多次替换

sed -e "s/nihaoshijie/www/g" -e "s/test/wwwwwwwwwwwwwwwwwwwwww/g" passwd.txt.bak -i

6.写入对应行

sed "2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" passwd.txt.bak -i

每行都加个分隔符

sed "a ----------------------------------------------------" passwd.txt.bak -i

7.实例

拿出ip和子网掩码和广播地址

ifconfig ens33 | sed "2p" -n | sed "s/^.*inet//"


五、awk

awk更像一门编程语言,支持条件判断、数组、循环等功能

三剑客的各个特点

  • grep,擅长单纯的查找或匹配文本内容
  • awk,更适合编辑、处理匹配到的文本内容
  • sed,更适合格式化文本内容,对文本进行复杂处理

三个命令称之为Linux的三剑客

1.awk基础

awk语法:

awk [option] 'pattern[action]' file...

awk 参数 '条件动作' 文件

2.举例

空格作为分隔符

$0 代表一整行

$1 代表第一列

$2 代表第二列

...

awk '{print $1}' 1.txt

3.NF和NR

awk '{print $NF}' 1.txt 
awk '{print $NR}' 1.txt

NR显示文件第五行

awk 'NR==5' 1.txt

NR显示文件第二行到第五行

root@ou-virtual-machine:~# awk 'NR==2,NR==5' 1.txt 
a6 a7 a8 a9 a10
a11 a12 a13 a14 a15
a16 a17 a18 a19 a20
a21 a22 a23 a24 a25

4.字符串占位

输出默认不带分隔符

root@ou-virtual-machine:~# awk '{print $1 $2 $3}' 1.txt 
a1a2a3
a6a7a8
a11a12a13
a16a17a18
a21a22a23root@ou-virtual-machine:~# awk '{print $1__$2__$3}' 1.txt 
a1a2a3
a6a7a8
a11a12a13
a16a17a18
a21a22a23

逗号会默认加空格分隔符

root@ou-virtual-machine:~# awk '{print $1,$2,$3}' 1.txt 
a1 a2 a3
a6 a7 a8
a11 a12 a13
a16 a17 a18
a21 a22 a23

"字符串"分隔符

root@ou-virtual-machine:~# awk '{print "1 List: "$1,"2 List: "$2,"3 List: "$3}' 1.txt 
1 List: a1 2 List: a2 3 List: a3
1 List: a6 2 List: a7 3 List: a8
1 List: a11 2 List: a12 3 List: a13
1 List: a16 2 List: a17 3 List: a18
1 List: a21 2 List: a22 3 List: a23
1 List:  2 List:  3 List: 

5.awk参数

前面的文件分隔符是空格,awk自动识别空格作为分隔符

但是如果我们用其他的分割符,那么awk并不会自动识别

root@ou-virtual-machine:~# cat 1.txt
a1 a2 a3 a4 a5
a6 a7 a8 a9 a10
a11 a12 a13 a14 a15
a16 a17 a18 a19 a20
a21 a22 a23 a24 a25root@ou-virtual-machine:~# cat 1.txt.bak 
a1#a2#a3#a4#a5
a6#a7#a8#a9#a10
a11#a12#a13#a14#a15
a16#a17#a18#a19#a20
a21#a22#a23#a24#a25root@ou-virtual-machine:~# awk "{print $1}" 1.txt.bak 
a1#a2#a3#a4#a5
a6#a7#a8#a9#a10
a11#a12#a13#a14#a15
a16#a17#a18#a19#a20
a21#a22#a23#a24#a25

通过-F来修改识别分隔符

cat 1.txt.bak | awk -F"#" '{print $1}'

小写f

root@ou-virtual-machine:~# echo '"{print}"' > 1
root@ou-virtual-machine:~# awk -f 1 1.txt 
a1 a2 a3 a4 a5
a6 a7 a8 a9 a10
a11 a12 a13 a14 a15
a16 a17 a18 a19 a20
a21 a22 a23 a24 a25

6.awk变量

取出本机的ip

第一步先取出ifconfig第二行的数据

ifconfig | awk 'NR==2{print $0}'

ifconfig | awk 'NR==2{print $0}' | awk '{print $2}'

7.awk的分隔符

  • 输入分隔符,awk默认是空格,空白字符,变量名是FS
  • 输出分隔符,OFS

FS输入分隔符

awk逐行处理文本的时候,以输入分隔符为准,把文本切成多个片段,默认符号是空格

当我们处理特殊文件,没用空格的时候,可以自由指定分隔符

awk -F '#' '{print $1}' 1.txt.bak

修改默认输出符

root@ou-virtual-machine:~# awk -F '#'  '{print $1,$2,$4}' 1.txt.bak 
a1 a2 a4
a6 a7 a9
a11 a12 a14
a16 a17 a19
a21 a22 a24  
root@ou-virtual-machine:~# awk -F '#' -v OFS=': ' '{print $1,$2,$4}' 1.txt.bak 
a1: a2: a4
a6: a7: a9
a11: a12: a14
a16: a17: a19
a21: a22: a24
: : 
root@ou-virtual-machine:~# 

8.awk的变量

NR、NF和FNR变量

[root@localhost ~]# awk -F "#" '{print NR,NF,$1,$2}' 1
1 5 a1 a2
2 5 a6 a7
3 5 a11 a12
4 5 a16 a17
5 5 a21 a22

NR和FNR的区别

[root@localhost ~]# awk -F "#" '{print FNR,$1,$2}' 1 1
1 a1 a2
2 a6 a7
3 a11 a12
4 a16 a17
5 a21 a22
1 a1 a2
2 a6 a7
3 a11 a12
4 a16 a17
5 a21 a22
[root@localhost ~]# awk -F "#" '{print NR,$1,$2}' 1 1
1 a1 a2
2 a6 a7
3 a11 a12
4 a16 a17
5 a21 a22
6 a1 a2
7 a6 a7
8 a11 a12
9 a16 a17
10 a21 a22

ORS和RS

[root@localhost ~]# awk -F "#" '{print RS="-------",$1,$2}' 1 
------- a1 a2
------- a6 a7
[root@localhost ~]# awk -F "#" '{print ORS="-------",$1,$2}' 1 
------- a1 a2-------------- a6 a7-------------- a11 a12-------------- a16 a17-------------- a21 a22-------[
[root@localhost ~]# 

FILENAME

数组

默认数组

[root@localhost ~]# awk "{print ARGV[0],$0}" 1
awk 0
awk 0
awk 0
awk 0
awk 0
[root@localhost ~]# awk "{print ARGV[1]}" 1
1
1
1
1
1
[root@localhost ~]# awk "{print ARGV[2]}" 1
[root@localhost ~]# awk '{print ARGV[0],ARGV[1],ARGV[2]}' 1 1
awk 1 1
awk 1 1
awk 1 1
awk 1 1
awk 1 1
awk 1 1
awk 1 1
awk 1 1
awk 1 1
awk 1 1
[root@localhost ~]# 

自定义变量

[root@localhost ~]# awk -v myname='o' 'BEGIN{print "myname=",myname}'
myname= o
[root@localhost ~]# 

9.awk格式化输出

print和printf的区别

printf需要自定义格式

awk '{printf $0}' 1
a1#a2#a3#a4#a5a6#a7#a8#a9#a10a11#a12#a13#a14#a15a16#a17#a18#a19#a20a21#a22#a23#a24#a25[root@localhost ~]# 
[root@localhost ~]# 

自定义格式

[root@localhost ~]# printf "%s\n" a b c d e
a
b
c
d
e
[root@localhost ~]# awk 'BEGIN{printf "%s\n%s\n",1,2,3,4,5}'
1
2

区别

http://www.15wanjia.com/news/13684.html

相关文章:

  • 如何建设视频资源电影网站自动app优化最新版
  • 深圳招转行网站开发实习生真的吗竞价恶意点击报案
  • 网站设计 推广海南seo代理加盟供应商
  • 网站建设费用分类最新推广注册app拿佣金
  • 怎样查询网站的建设公司谷歌优化师
  • 华夏名网青岛seo搜索优化
  • 网站访客qq统计系统超级搜索引擎
  • 做网站怎样做营销软文200字
  • 厦门企业如何建网站广告推广免费平台
  • 营销型网站制作价格搜索热词排名
  • 建设网站分析报告指数搜索
  • 东山县建设银行网站深圳优化公司高粱seo较
  • react做网站seo网络优化招聘信息
  • 赣州做网站jx25国际最新新闻
  • 社交网站怎么做宣传推广渠道有哪些
  • 潜江哪里做网站免费网站代理访问
  • 重庆网站建设mswzjs市场营销的对象有哪些
  • 百讯网站建设百度推广免费
  • 如何做婚介网站平面设计培训费用一般是多少
  • 漯河住房和城乡建设委员会网站百度推广的费用
  • 做网站人员工资网站关键字优化
  • 今日楼市最新消息seo推广公司有哪些
  • vue做的网站百度抓取软媒win7优化大师
  • 成品网站能用吗seo网络培训
  • 网站开发 认证揭阳百度快照优化排名
  • html网站建设实例代码企业营销策划实训报告
  • 网站模版配置数据库郑州网站推广电话
  • 项目网赚北京厦门网站优化
  • 宁波搭建网站搜索引擎网络排名
  • 响应式网站建设效果图片外链