У меня есть два файла. Я хочу, чтобы удалить все строки (в url.txt) от log.txtУдалить все строки, содержащие несколько строк, используя sed
Первый файл url.txt
google.com
bing.com
yahoo.com
Второй файл log.txt
1.2.3 www.google.com bot
626.7.7 www.yahoo.com browser
35.5.6 www.test.com search
44.6.6 www.bing.com web
Я хочу, чтобы этот вывод:
35.5.6 www.test.com search
этот код работает для строки, но я хочу удалить все строки (в url.txt) от log.txt
sed -i '/$string/d' log.txt
Это будет неправильно удалять более длинные URL-адреса, если они присутствуют, например. если log.txt содержит '44.6.6 www.stabbing.com web', который будет соответствовать' bing.com'. Вам нужно добавить '-w' arg для grep. Это все еще оставляет вам проблему, что она ложно удалит строку типа '44.6.6 www.stabbing.com, рад, что это не bing.com', так как она не соответствует ни одному определенному полю, но это может и не быть проблемой. –
Спасибо Ed, я добавил -w в эту команду grep. – anubhava
понимайте свою точку зрения, но не говорите, что stabbing.com должен храниться. он говорит, что «вся строка» не ограничивается корневым доменом. И «bing.com.phising.to» (возможно, надеюсь) удаляется (но вы сохраняете оба своих +1; -D) – NeronLeVelu