我使用sed来改变一个单词,文件现在被删除了

时间:2014-10-12 00:40:31

标签: sed

我是使用sed命令将CIS132更改为CIS132 Unix / Linux简介。 我做了:

sed 's/CIS132/CIS132 Introduction to Unix\/Linux/g' CISed 

我收到了一个命令提示符,所以我想到了所有设置。我接着猫了,没有输出。那里发生了什么? 我能否以某种方式删除内容?

由于

杰森

1 个答案:

答案 0 :(得分:2)

也许你这样做了:

sed 's/CIS132/CIS132 Introduction to Unix\/Linux/g' CISed > CISed

..那不是替换--in-place的方法。正确的方法是:

sed --in-place 's/CIS132/CIS132 Introduction to Unix\/Linux/g' CISed

  • 那里发生了什么?

您将标准输出重定向到名为 CISed 新空文件(您使用>)。它会删除文件中的任何内容。

  • 我能否以某种方式删除内容?

你不能。你只需用空文件替换它。


从评论中摘录:

这是你的shell历史:

971 cat CISed
972 grep 'CIS132' | sed 's/CIS132/CIS132 Introduction to Unix/Linus/g' CISed
973 sed '1,2s/CIS132/CIS132 Introduction to Unix/Linus/g' CISed
974 sed '1,3s/CIS132/CIS132 Introduction to Unix"/"Linus/g' CISed
975 sed 's/CIS132/CIS132 Introduction to Unix/Linux/g' > CISed
976 sed 's/CIS132/CIS132 Introduction to Unix/Linux/g' CISed
977 sed 's/CIS132/CIS132 Introduction to Unix'/'Linux/g' CISed
978 sed 's/CIS132/CIS132 Introduction to Unix\/Linux/g' CISed
979 cat CISed
980 cat CISed
981 ls
982 cat CISed

971 中,您阅读了内容,它就在那里。然后,在 975 中,虽然命令失败,但重定向操作符(>)会创建一个名为CISed新空文件。文件被删除的那一刻。