![我的 sed 命令发生了什么?](https://linux22.com/image/146751/%E6%88%91%E7%9A%84%20sed%20%E5%91%BD%E4%BB%A4%E5%8F%91%E7%94%9F%E4%BA%86%E4%BB%80%E4%B9%88%EF%BC%9F%20.png)
目前正在 shell 中做一个小实验。
我的命令如下:
echo 'This a cool butterfly' > test
sed 's/butterfly/parrot/g' test > test
但是当我在测试文件上做一个简单的猫时,该文件是空的。为什么?
答案1
您不能同时读取和写入文件。在简历中,sed 正在读取您的文件“test”,但您同时正在写入该文件,因此结果是一个空文件。
尝试这个:
sed -i 's/butterfly/parrot/g' test
这样,文件将被就地编辑。