Я хочу удалить все строки в файле, содержащие слово «test», но если эта строка содержит «test @», то я не хочу чтобы удалить его.
Вероятно, есть какой-нибудь забавный способ сделать это с помощью sed, но я борюсь, я пытался написать цикл bash с помощью sed, но это, вероятно, глупо.
filetest=/tmp/filetest
filetest_tmp=/tmp/filetest.tmp<
line_num=0
while read line; do
line_num=$(($line_num+1))
if [[ $line == *rootsh* ]] && [[ $line != *root@* ]]
then
sed -e "${line_num}"'d' $filetest >> $filetest_tmp
fi
done < $filetest
cp $syslog_tmp $filetest
Как вы можете сказать, я newb здесь: (