前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次 sed 悲剧

记一次 sed 悲剧

作者头像
莲花海
发布2020-01-21 11:02:44
4660
发布2020-01-21 11:02:44
举报
sed.png
sed.png

今天,一个 Linux 命令失误让我失去了博客的所有 Markdown 文档。很坑的命令,一共 77 篇 Markdown 文档,里面的内容全部变为了 omments: true,现在慢慢将这 77 篇从 HTML 页面敲成 Markdown 文档,估计大家看到这篇文章的时候,已经是一个月之后了……

为什么说这个命令坑呢?因为一般的 Linux 命令 -字母 表示某种功能选项,而 " "' ' 是文件名或者路径,而这个 sed 就不是这样了?...

先来看看常见的 ls

1 2 3 4 5

NAME ls - list directory contents SYNOPSIS ls [OPTION]... [FILE]...

再看看 sed

1 2 3 4 5

NAME sed - stream editor for filtering and transforming text SYNOPSIS sed [OPTION]... {script-only-if-no-other-script} [input-file]...

发现了不同吧……我自以为 iinsert 的缩写,而插入嘛,肯定是从第一行开始呗(自以为),结果命令一敲回车,反应很快(高效的 sed),所以也没啥不好的感觉……结果一查看文件,真是个令人窒息的操作?...

sed-1.png
sed-1.png

◎ 输入的命令

sed-2.png
sed-2.png

◎ 得到的结果

为什么插入的结果是 omments: true 呢?首字母 c 去哪了?首先,通过上面 Manual 中的内容我们知道 " " 里面的不是要插入的内容,而是操作脚本,那我再看看 Manual 中 c 的描述:

1 2 3

c \ text Replace the selected lines with text, which has each embedded newline preceded by a backslash.

一大行,关键字 Replace,其它什么参数我都没加,为什么就将全部行替换了?... 好吧,说到底还是我 Linux 知识不过关?...

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档