LINUX.ORG.RU

удаление ненужных строк из файла

 , , ,


0

1

хочу удалить строки в которых нет словосочетания которое я укажу

например: имеется файлик с строками вида

2.20.60.0 2.20.63.255 de

2.20.64.0 2.20.178.255 eu

2.20.179.0 2.20.179.255 es

2.20.180.0 2.20.181.255 de

2.20.182.0 2.20.182.255 at

2.20.183.0 2.20.183.255 gb

2.20.184.0 2.20.184.255 de

2.20.185.0 2.20.185.255 es

мне нужно оставить только те строки где есть словосочетание de

результат нужен таким

2.20.60.0 2.20.63.255 de

2.20.180.0 2.20.181.255 de

2.20.184.0 2.20.184.255 de



Последнее исправление: qpt7 (всего исправлений: 3)
Ответ на: комментарий от kostik87

ещё вариант

ещё есть файлы с задачей посложнее например

5.32.168.0 5.32.173.255 1,536

5.32.175.0 5.32.175.255 256

5.56.64.0 5.56.127.255 16,384

5.154.190.0 5.154.191.255 512

31.31.0.0 31.31.31.255 8,192

31.131.0.0 31.131.7.255 2,048

31.148.132.0 31.148.133.255 512

нужно оставить строки вида

5.32.168.0 5.32.173.255

5.32.175.0 5.32.175.255

5.56.64.0 5.56.127.255

5.154.190.0 5.154.191.255

31.31.0.0 31.31.31.255

31.131.0.0 31.131.7.255

31.148.132.0 31.148.133.255

такое возможно?

qpt7
() автор топика
Ответ на: комментарий от anonymous

это только часть строк из файлов

qpt7
() автор топика
Ответ на: комментарий от qpt7

Ну если тупо в лоб, то

egrep «5.154.19[0-1]» input_file > output_file

Но диапазоны могут пересекаться, плюс входные данные могут поменяться, поэтому в более общем виде, наверное, нужно преобразовать ip в integer, сравнивать их как числа и выводить строку если оба значения в заданных границах

anonymous
()

Гугл и пять минут времени решат эту задачу.

IPR ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.