Код: Выделить всё
grep -Fxv "sudo: myname : 1 incorrect password attempt ; TTY=pts/3 ; PWD=/home/myname/workspace ; USER=root ; COMMAND=/usr/bin/pip uninstall ansible" ~/.log-scanner/blacklist > temp && mv temp ~/.log-scanner/blacklist && cat ~/.log-scanner/blacklist
Код: Выделить всё
cat ~/.log-scanner/blacklist
Код: Выделить всё
sudo: myname : 1 incorrect password attempt ; TTY=pts/3 ; PWD=/home/myname/workspace ; USER=root ; COMMAND=/usr/bin/pip uninstall ansible
Как это возможно? Я не могу понять, как два последовательных вызова cat могут иметь разные результаты.
Я ожидал, что результат будет одинаковым; либо в обоих случаях выводить строку, которую я пытался исключить, либо в обоих случаях ничего не выводить.
Я пробовал чередовать команды cat с синхронизацией, но результаты остаются прежними.
Изменить: для большего контекста я пытаюсь пройтись по строкам файла и удалить каждое буквальное вхождение этой строки в другом файле. , вот так:
Код: Выделить всё
while read -r line || [[ -n $line ]]
do
grep -Fxv "$line" "$blacklist" > temp && mv temp "$blacklist"
# sed -i "\#$line#d" "$blacklist"
done < "$whitelist"
Подробнее здесь: https://stackoverflow.com/questions/791 ... g-but-exec