UNIX初学者:grep保存到文件不起作用

时间:2012-03-25 04:03:25

标签: bash unix grep io-redirection

我是unix的初学者,我刚陷入困境。我正在处理的bash应用程序非常简单,可以添加联系人,删除联系人(基于名字和姓氏)。下面是我的代码的一部分,由于某种原因,grep在排除(> contacts_file)时显示剩余的联系人,但在包含(> contacts_file)时不保存到文件。它将'contacts_file'留空。我怎样才能解决这个问题?或者有更好的方法来搜索联系人文件中的联系人吗? contacts_file中的格式为:firstname lastname

echo "[Remove a contact]"
echo "First Name: "
read first0
echo "Last Name: "
read last0  
grep -vw -e "$first0 $last0" contacts_file >contacts_file

1 个答案:

答案 0 :(得分:5)

您无法将输出定向到您正在使用的同一文件。 原因是shell打开输出文件进行写入,因此将其设置为空。

解决方案是将输出定向到临时文件,然后将临时文件移动到contacts_file,如果要替换它。