加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

Unix sed编辑器下如何读写文件操作

发布时间:2023-02-25 15:09:24 所属栏目:Unix 来源:
导读:一.文件读取

假定有两个文件,file1和file2,内容分别如下:

$ cat file1

1apple

1banana

1mango

$ cat file2

2orange

2strawberry

sed有两个选项用来读写文件

r filename:读取

一.文件读取
 
假定有两个文件,file1和file2,内容分别如下:
 
$ cat file1
 
1apple
 
1banana
 
1mango
 
$ cat file2
 
2orange
 
2strawberry
 
sed有两个选项用来读写文件
 
r filename:读取filename指定的文件内容
 
w filename:将内容写入filename指定的文件
 
看例子:
 
1.在file1的每一行读完之后读取file2的内容:
 
$ sed ‘r file2’ file1
 
1apple
 
2orange
 
2strawberry
 
1banana
 
2orange
 
2strawberry
 
1mango
 
2orange
 
2strawberry
 
r file2读取file2的所有内容,因此r之前没有知道那个行号或匹配,因此有了上面的输出,记住,sed的工作机制,每次读file1的一行,然后执行命令.
 
2.如何在读取了file1的第一行之后将file2读入.
 
$ sed ‘1r file2’ file1
 
1apple
 
2orange
 
2strawberry
 
1banana
 
1mango
 
r前面加个1就行了.
 
3.当file1某行匹配了模式之后,读入file2.
 
$ sed ‘/banana/r file2’ file1
 
1apple
 
1banana
 
2orange
 
2strawberry
 
1mango
 
sed逐行读入file1,然后判断该行是否匹配banana,如果匹配,就读入file2.
 
4.当file1读取完成后读入file2,其实就是合并两个文件.
 
$ sed ‘$r file2’ file1
 
1apple
 
1banana
 
1mango
 
2orange
 
2strawberry
 
这里只是演示一下,其实cat file1 file2就可以完成合并.
 
二.文件写入
 
使用一个file1文件,内容如下:
 
$ cat file1
 
apple
 
banana
 
mango
 
orange
 
strawberry
 
1.将file1的2-4行写入到file2.
 
$ sed -n ‘2,4w file2’ file1
 
2,4w就是写2-4行的意思,那-n呢?默认情况下sed会把读入的文件处理的结果输出到标准输出,也就是终端,而为了不使用默认输出,-n就派上用场了,执行该命令终端不会有任何输出.
 
$ cat file2
 
banana
 
mango
 
orange
 
查看file2内容,发现已经写入成功了.
 
2.从第三行开始全部写入file2.
 
$ sed -n ‘3,$w file2’ file1
 
$ cat file2
 
mango
 
orange
 
strawberry
 
就不多解释了.
 
3.如果是用正则呢?
 
$ sed -n ‘/apple/,/mango/w file2’ file1
 
$ cat file2
 
apple
 
banana
 
mango --Cuoxin.com
 
该命令将逐行读入file1,然后判断该行是否匹配apple,如果匹配,则作为起始行,然后继续读入,判断是否匹配mango,如果是,则作为终止行,然后将中间的内容写入到file2.
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章