Linux 从文件中删除文本

标签 linux shell unix grep

我想写一个命令,从文件 .todolist 中删除一个项目,就像这样:

path="$HOME/.todolist"
if [ "$task" == "- " ];
then 
    exit 1
fi 
cat $path | grep -v $1 > $path

当我 cat $path | grep -v $1 一切正常,但是当我尝试写回文件时,它使文件为空。我做错了什么?

最佳答案

就这么简单-

path="$HOME/.todolist"
grep -v $1 $path | sponge $path

关于Linux 从文件中删除文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15072227/

相关文章:

linux - grep -fpattern.txt 返回pattern.txt中的确切模式

shell - Eval 命令在控制台上抛出日志 - 如何抑制它?

linux - 使用 Device::SerialPorts 在 Linux 中编程串口

linux - echo 'b' >>/proc/sysrq-trigger 和reboot有什么区别?

linux - 当值为 0 时存储 grep -c 输出时脚本终止

shell - 如何杀死过时的进程

linux - 将文本文件中的部分文件名与目录中的文件名进行比较(grep + awk)

c++ - 用于用户输入的 Linux C++ gdb 命令

c - 编写我自己的查找程序时出现段错误

c - 压缩实用程序使用的 LZW 算法的 POSIX 系统库是什么