北京SEO

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

2019/10/10/17:46:21  阅读:1910  来源:谷歌SEO算法  标签: 云计算

上篇我们讲了如何用Unix sed编辑器替换文件内容,本教程我们来讲讲用sed如何读写文件操作,还有如何将一个文件部份内容写入到另外一个文件里去,本文将展示如何将文件内容读入到sed输出,同时包含如何将一个文件的部分内容写入到另一文件.

一.文件读取

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

  1. $catfile1
  2. 1apple
  3. 1banana
  4. 1mango
  5. $catfile2
  6. 2orange
  7. 2strawberry

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

r filename:读取filename指定的文件内容

w filename:将内容写入filename指定的文件

看例子:

1.在file1的每一行读完之后读取file2的内容:

  1. $sed‘rfile2’file1
  2. 1apple
  3. 2orange
  4. 2strawberry
  5. 1banana
  6. 2orange
  7. 2strawberry
  8. 1mango
  9. 2orange
  10. 2strawberry

r file2读取file2的所有内容,因此r之前没有知道那个行号或匹配,因此有了上面的输出,记住,sed的工作机制,每次读file1的一行,然后执行命令.

2.如何在读取了file1的第一行之后将file2读入.

  1. $sed‘1rfile2’file1
  2. 1apple
  3. 2orange
  4. 2strawberry
  5. 1banana
  6. 1mango

r前面加个1就行了.

3.当file1某行匹配了模式之后,读入file2.

  1. $sed‘/banana/rfile2’file1
  2. 1apple
  3. 1banana
  4. 2orange
  5. 2strawberry
  6. 1mango

sed逐行读入file1,然后判断该行是否匹配banana,如果匹配,就读入file2.

4.当file1读取完成后读入file2,其实就是合并两个文件.

  1. $sed‘$rfile2’file1
  2. 1apple
  3. 1banana
  4. 1mango
  5. 2orange
  6. 2strawberry

这里只是演示一下,其实cat file1 file2就可以完成合并.

二.文件写入

使用一个file1文件,内容如下:

  1. $catfile1
  2. apple
  3. banana
  4. mango
  5. orange
  6. strawberry

1.将file1的2-4行写入到file2.

$ sed -n ‘2,4w file2’ file1

2,4w就是写2-4行的意思,那-n呢?默认情况下sed会把读入的文件处理的结果输出到标准输出,也就是终端,而为了不使用默认输出,-n就派上用场了,执行该命令终端不会有任何输出.

  1. $catfile2
  2. banana
  3. mango
  4. orange

查看file2内容,发现已经写入成功了.

2.从第三行开始全部写入file2.

  1. $sed-n‘3,$wfile2’file1
  2. $catfile2
  3. mango
  4. orange
  5. strawberry

就不多解释了.

3.如果是用正则呢?

  1. $sed-n‘/apple/,/mango/wfile2’file1
  2. $catfile2
  3. apple
  4. banana
  5. mango--phpfensi.com

该命令将逐行读入file1,然后判断该行是否匹配apple,如果匹配,则作为起始行,然后继续读入,判断是否匹配mango,如果是,则作为终止行,然后将中间的内容写入到file2.

广告内容

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

相关阅读

热门评论

卢松松博客 卢松松博客

关注创业者、自媒体人和站长的网站

总篇数167

精选文章

RMAN中catalog和nocatalog区别介绍 小技巧:为Linux下的文件分配多个权限 zimbra8.5.1安装第三方签名ssl证书的步骤 解决mysql不能远程连接数据库方法 windows服务器mysql增量备份批处理数据库 mysql中slow query log慢日志查询分析 JavaScript跨域问题总结 Linux下负载均衡软件LVS配置(VS/DR)教程 mysql中权限参数说明 MYSQL(错误1053)无法正常启动

SEO最新算法