sed续与awk(粗糙版)

s:sed d 替换功能,改

s:替换字符串

格式是:sed -n 's/需要替换的原内容/替换后的内容/(ps:数字是替换每行中的第几个,g代表是全内容替换)p' 替换的文件地址

例如:

sed续与awk(粗糙版)_第1张图片

c:整行替换

y:字符替换,替换前后的字符串长度必须相同的

l&:l+&转换小写的特殊符号,前面要加\转义符

例如:

sed续与awk(粗糙版)_第2张图片

u&:u+&转换大写的特殊符号,前面要加\转义符

例如:

sed续与awk(粗糙版)_第3张图片

*很好用很重要c:整行替换

例如:

sed续与awk(粗糙版)_第4张图片

*很好用很重要:单字符替换:

y只是对单字符替换,前后的长度必须一一对应,不是整体替换

例如:

sed续与awk(粗糙版)_第5张图片

sed续与awk(粗糙版)_第6张图片

增:

a:匹配内容的下一行添加。它可以区分大小写,可以模糊匹配,可以精确匹配

例如:

sed续与awk(粗糙版)_第7张图片

i:匹配内容的上一行添加。它可以区分大小写,可以模糊匹配,可以精确匹配

sed续与awk(粗糙版)_第8张图片

$r:行后追加,也就是读取行后的其他内容,然后添加。

sed续与awk(粗糙版)_第9张图片

r:匹配内容的之后添加。它可以区分大小写,可以模糊匹配,可以精确匹配

实验:将three这行读取另外一个文件,然后插入到three行下

sed续与awk(粗糙版)_第10张图片

$a:是在文本的最后一行之后添加

例如:

sed续与awk(粗糙版)_第11张图片

$i:是在文本的最后一行之上添加

例如:

sed续与awk(粗糙版)_第12张图片

sed如何对字符串的位置进行替换:

例如:将陆墨宁3与陆墨宁1替换

实验:echo ky01abc变成ky01cab

实验:echo 陆墨宁很棒 完全调换成 棒很宁墨陆

实验:echo 很棒陆墨宁 只保留 很棒

面试笔试题:将文本内容的版本号匹配

sed续与awk(粗糙版)_第13张图片

sed续与awk(粗糙版)_第14张图片

-f:第一个文件当中的命令对第二个文件的内容进行处理

例如:

sed续与awk(粗糙版)_第15张图片

面试笔试题:将日志文件中截取一段日志

sed续与awk(粗糙版)_第16张图片

sed续与awk(粗糙版)_第17张图片

总结sed:流编辑器

sed -r :扩展正则表达式

sed -i: 一定要备份

sed的最大功能是增和改,但是增删改查都可以,对文本内容按行进行增删改查

awk:是一个强大的文本编辑工具,逐行读取文件内容,然后输出结果

它最强大的功能是,awk本身是一个开发工具,内置有代码,用法和Java类似

我们所需要的功能也就是:

按行取列:和cut类似,cut的默认分隔符是一个tab键

awk的默认分割符是空格或者tab键,但是多个空格,多个tab键,他会自动压缩成一个

awk可以在免交互的情况下,实现复杂的文本内容操作

awk的组成方式:

awk 'pattern action' file

操作符 怎么干 处理对象

awk的选项有:

-F:指定分隔符,默认是空格可以不加

例如:

-v:变量赋值

awk的命令格式:

awk '模式或条件{处理动作}'

awk的默认处理动作就是打印

内置变量有:

1、$0:打印所有内容

2、$n:处理行的第几列

3、NR:处理行的行号 NR = >

4、NF:处理行的字段个数,$NF表示最后一个字段

默认打印:

sed续与awk(粗糙版)_第18张图片

默认是1:0什么都不打印

sed续与awk(粗糙版)_第19张图片

如何打印行号:

sed续与awk(粗糙版)_第20张图片

如何打印行号与内容:

sed续与awk(粗糙版)_第21张图片

如何指定第三行打印输出:

如何打印第三行到第五行:有两种方式

sed续与awk(粗糙版)_第22张图片

如何打印第三行和第五行:

如何打印偶数行:

sed续与awk(粗糙版)_第23张图片

如何打印奇数行:

sed续与awk(粗糙版)_第24张图片

如何幂运算:有两种方式:PS:其他运算在shell脚本第一章

sed续与awk(粗糙版)_第25张图片

如何进行文本过滤匹配打印:

这是以root开头打印:

这是范围匹配:

sed续与awk(粗糙版)_第26张图片

这是以bash为结尾匹配:

sed续与awk(粗糙版)_第27张图片

用begin模式:‘begin初始条件;对初始化条件的操作;对结果的输出动作'

sed续与awk(粗糙版)_第28张图片

这是将/etc/passwd内容输出第四列内容:这是按行取列,必须要懂

sed续与awk(粗糙版)_第29张图片

用begin模式,来指定打印

sed续与awk(粗糙版)_第30张图片

你可能感兴趣的:(云计算课程学习,正则表达式,运维,linux)