我是使用sed命令将CIS132更改为CIS132 Unix / Linux简介。 我做了:
sed 's/CIS132/CIS132 Introduction to Unix\/Linux/g' CISed
我收到了一个命令提示符,所以我想到了所有设置。我接着猫了,没有输出。那里发生了什么? 我能否以某种方式删除内容?
由于
杰森
答案 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
的新空文件。文件被删除的那一刻。