本文将展示如何将文件内容读入到sed输出,同时包含如何将一个文件的部分内容写入到另一文件
一.文件读取
假定有两个文件,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
该命令将逐行读入file1,然后判断该行是否匹配apple,如果匹配,则作为起始行,然后继续读入,判断是否匹配mango,如果是,则作为终止行,然后将中间的内容写入到file2
荒野乱斗国际版 (BrawlStars)最新版本v56.274
下载一波超人内置修改器菜单版 安卓版v1.0.2
下载敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载继承了一座戏园子无限声望铜钱版 内置菜单最新版v1.7
继承了一座戏园子折相思版是游戏的破解版本,在该版本中为玩家提
山河半世橙光清软金手指版 无限鲜花v3.24
山河半世是一款超级好玩的橙光恋爱游戏,在游戏中玩家们需要扮演
蓬莱手游折相思版 安卓版v1.0.0
蓬莱免广告版是游戏的修改版本,在该版本中为玩家去除了广告,玩
当红影后橙光游戏破解版2025 最新版v1.0
当红影后橙光破解版是一款超级好玩的娱乐圈题材的橙光游戏,在这
忽然成了万人迷清软完结版 无限鲜花版v12.15
忽然成了万人迷破解版是一款非常好玩的男性向橙光游戏,在有一天