Удалить строки, содержащие путь к файлу с помощью sed

У меня есть список строк в файле, который выглядит так:

6642a51e0ed5e6f89e5e4090b9aa0fb3 /home/device/eth0/uid d66d1417251a9a151176c34acf046878 /home/device/eth0/uid64 db5c3c9d348ce26169c56901a7606961 /home/device/eth1/dhcp 226c1a53543bddcca5d136fdd5700f4c /home/device/eth1/ipv4 13b376c06f904b607c2a23bd76115595 /home/device/eth1/netmask 

Я хочу удалить некоторые строки из этого файла без каких-либо пустых строк.

Я нашел sed подходящей командой, хотя я пробовал несколько способов и смотрел на работу других, я до сих пор не знаю, как это сделать.

Это то, что у меня есть sed -i "s|'/home/device/pn'|d" TestRun.chk

Но он не работает … Я читал статьи о том, как сломать косую черту и как ее не использовать. Я просто не знаю, как это работает для моей ситуации.

Ваша помощь очень ценится!

РЕДАКТИРОВАТЬ:

Пример ввода:

 6642a51e0ed5e6f89e5e4090b9aa0fb3 /home/device/eth0/uid d66d1417251a9a151176c34acf046878 /home/device/eth0/uid64 db5c3c9d348ce26169c56901a7606961 /home/device/eth1/dhcp 226c1a53543bddcca5d136fdd5700f4c /home/device/eth1/ipv4 13b376c06f904b607c2a23bd76115595 /home/device/eth1/netmask 

После запуска команды sed для удаления /home/device/eth1/ipv4 ожидаемый результат:

 6642a51e0ed5e6f89e5e4090b9aa0fb3 /home/device/eth0/uid d66d1417251a9a151176c34acf046878 /home/device/eth0/uid64 db5c3c9d348ce26169c56901a7606961 /home/device/eth1/dhcp 13b376c06f904b607c2a23bd76115595 /home/device/eth1/netmask 

  • Sed заменить не функционирует, как ожидалось
  • Удалить строку между двумя шаблонами регулярных выражений
  • Как добавить строку, которая не начинается с '<' до предыдущей строки
  • Sed заменяет части строк не начиная с http: //
  • команда bash, которая выводит результат предыдущего канала
  • Конкретная замена уровня столбца
  • Заменить маркер в текстовом файле произвольным новым текстом
  • sed работает при вводе из эха, но не из файла
  • One Solution collect form web for “Удалить строки, содержащие путь к файлу с помощью sed”

    Используя sed , вы можете:

     $ sed -i '\| pattern to match |d' File 

    Это приведет к удалению строк, содержащих pattern to match с файлом.

    Используя grep, вы можете:

     $ echo "$(grep -v "pattern to match" File)" > File 

    Параметр -v позволяет сочетать строки, не содержащие pattern to match , который затем перенаправляется обратно в файл.

    Linux и Unix - лучшая ОС в мире.