UNIX Beginner: grep сохранить в файл не работает - PullRequest
2 голосов
/ 25 марта 2012

Я новичок в Unix, и я только что попал в ловушку.Приложение bash, над которым я работаю, очень простое и может добавлять контакты и удалять контакты (на основе имени и фамилии).Ниже приведена часть моего кода, и по какой-то причине grep отображает оставшиеся контакты нормально при исключении (> contacts_file), но не сохраняет в файл при включении (> contacts_file).Вместо этого он оставляет поле «contacts_file» пустым.Как я могу это исправить?Или есть лучший способ поиска контактов в файле контакта?формат в файле contacts_file: имя фамилия

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

1 Ответ

5 голосов
/ 25 марта 2012

Вы не можете направить вывод в тот же файл, в который вы записываете.Причина в том, что оболочка открывает этот выходной файл для записи и, следовательно, делает его пустым.

Решение состоит в том, чтобы направить вывод во временный файл, а затем переместить временный файл в contacts_file, если вы хотите заменить его..

...