shell中的tee和sed命令

tee

(1)读取标准输入的数据,并将其内容输出成文件
(2)主要用于重定向到文件

常用参数
  -a,将读取的内容追加到文件的后面,而不是覆盖(在默认的情况下是覆盖)

命令tee与重定向的区别
  重定向,是将读取的内容输出到指定文件中,在屏幕上并不显示
  命令tee,在屏幕上显示的同时,将读取的内容也重定向到指定文件中

sed

sed在处理文本时是逐行读取文件内容,读到匹配的行就根据指令做操作,不匹配就跳过

两种使用方法:
1、在命令行指定sed指令对文本进行处理: sed 选项 ‘指令’ 文件
2、先将sed指令保存到文件中,将该文件作为参数进行调用:
sed 选项 -f 包含sed指令的文件 文件

常用选项:
-e 告诉sed将下一个参数解释为一个sed指令,只有在命令行给出多个指令时才需使用。
-f 后面跟着sed指令文件
-n 取消默认输出,sed默认会输出所有文本内容,使用-n参数后只显示处理过的行

sed中的指令
a: 追加 向匹配行后面插入内容
c: 更改 更改匹配行的内容
i: 插入 向匹配行前插入内容
d : 删除 删除匹配的内容
s: 替换 替换匹配的内容
p: 打印 打印出匹配的内容,通常与-n选项和用
=: 用来打印被匹配的行的行号
r,w:读和写编辑命令,r用于将内容读入文件,w用于将匹配内容写入到文件

实例:

sed '/123/ahello' 1.txt

#向内容123后面添加hello,如果文件中有多行包括123,则每一行后面都会添加

sed  '$ahello'  1.txt  

#在最后一行添加hello

sed '/123/ihello'  1.txt 

#在包含123的行之前插入hello,如果有多行包含123,则包含123的每一行之前都会插入hello
sed '$ihello' 1.txt #在最后一行之前插入hello
sed '1chello' 1.txt #将文件1.txt的第一行替换为hello
sed '/123/chello' 1.txt #将包含123的行替换为hello
sed '4d' 1.txt #删除第四行
sed '1~2d' 1.txt #从第一行开始删除,每隔2行就删掉一行,即删除奇数行
sed '1,2d' 1.txt #删除1~2行
sed '1,2!d' 1.txt #删除1~2之外的所有行
sed '$d' 1.txt #删除最后一行
sed '/123/d' 1.txt #删除匹配123的行
sed '/123/,$d' 1.txt #删除从匹配123的行到最后一行
sed '/^$/d' 1.txt #删除空行
sed '/123\|abc/!d' 1.txt #删除不匹配123或abc的行,/123|abc/ 表示匹配123或abc ,!表示取反
sed '1,3{/123/d}' 1.txt #删除13行中,匹配内容123的行,1,3表示匹配13行,{/123/d}表示删除匹配123的行

sed 's/123/hello/' 1.txt #将文件中的123替换为hello,默认只替换每行第一个123
sed 's/123/hello/g' 1.txt #将文本中所有的123都替换为hello
sed 's/123/hello/2' 1.txt #将每行中第二个匹配的123替换为hello
sed -n 's/123/hello/gpw 2.txt' 1.txt #将每行中所有匹配的123替换为hello,并将替换后的内容写入2.txt

sed  '/#/s/,.*//g'  1.txt  

#匹配有#号的行,替换匹配行中逗号后的所有内容为空 (,.*)表示逗号后的所又内容

sed 's/^#.*//'  1.txt     

#将1.txt文件中以#开头的行替换为空行,即注释的行 ( ^#)表示匹配以#开头,(.*)代表所有内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值