shell-sed

https://coolshell.cn/articles/9104.html
https://zhuanlan.zhihu.com/p/337196996?utm_source=wechat_session&utm_medium=social&utm_oi=939469651441332224&utm_campaign=shareopn

com

sed和awk都是文本处理工具。但sed偏向于在原来的基础上修改,而awk偏向于在原来的基础上修改分析格式化然后展示。侧重点不同,发展方向也就不同。sed进行替换、插入操作时,写起来也比awk简单。awk在格式化展示报表时,比sed方便。

2者最大的不同,就是awk以行列二维表的形式来处理,而sed仅以行为单位。也就是说awk比sed多划分了列。

跟awk一样,也是省略了文件流和循环的代码,直接写循环体

工作模型

sed命令在处理时,会先读取一行,放在临时缓冲区中,处理完缓冲区中的内容后,打印到屏幕上。然后再读入下一行,执行下一个循环。不断的重复,直到文件末尾。也是逐行处理。

语法

通常情况下调用sed命令有两种格式,如下所示。其中“参数”是指操作的目标文件,当存在多个操作对象时用,文件之间用逗号“,”分隔;而scriptfile表示脚本文件,需要用-f选项指定,表示通过指定的脚本文件来处理输入的目标文件。

sed  [选项]   '操作'   参数

sed  [选项]  -f scriptfile 参数

选项,进行一些很基本的设置

常见的sed命令选项包含以下几种:
-e或-expression=:表示用指定命令或者脚本来处理输入的文本文件
-f或-file-:表示用指定的脚本文件来处理输入的文件文件
-h或--help:显示帮助
-n、-quite或silent:表示仅表示处理后的结果
-i:直接编辑文本文件

“操作”用于只当对文件操作的动作行为,也就是sed的命令。通常情况下是采用“[n1[n2]]”操作参数的格式。n1、n2是可选的,代表选择进行操作的行数,如操作需要在5~20行之间进行,则表示为“5,20动作行为”。常见的操作包括以下几种。

i:在选定行上面插入一行指定内容。
a:在当前行下面增加一行指定内容。

d:删除,删除选定的行。

c:替换,将选定行替换为指定内容。
s:替换,替换指定字符
y:字符转换

p:打印,如果同时指定行,表示打印指定行;如果不指定行,则表示打印所有内容,如果又非打印字符,则以ASCLL码输出。通常与“-n”选项一起使用。

sed -n ‘3p’ ens33 #输出第三行内容
sed -n ‘3,5p’ ens33 #输出3-5行内容
sed -n ‘3,+5p’ ens33 #从第3行开始,连续输出5行即输出3-8行的内容

正则

正则表达式以“/”包围。
注:如果遇到特殊符号的情况,扩展正则还需要转义字符“\”。

sed -n ‘/the/p’ test.txt #输出包含the的行

例子

https://huaweicloud.csdn.net/63561addd3efff3090b5a65d.html?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EYuanLiJiHua%7Eactivity-1-126216920-blog-80087889.pc_relevant_3mothn_strategy_recovery&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EYuanLiJiHua%7Eactivity-1-126216920-blog-80087889.pc_relevant_3mothn_strategy_recovery&utm_relevant_index=1

输出a行和b行

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值