У меня есть файл, который я обрабатываю и получил застрявший формат: «HostRecord», «SOMEFILE», «InsideView», «legacy.name.com», «1.2.3.4» «1.2.3.5», «некоторый комментарий», «»Удаление котировок между двумя строками
мне нужно удалить «» между IP-адресами, но оставить ,
так, в конце концов, я бы выходной выглядеть следующим образом: «HostRecord "," SOMEFILE "," InsideView "," legacy.name.com "," 1.2.3.4.1.2.3.5 "," some comment "," "
Я думал, что я просто использую sed и попробовал несколько вещи. Мой последний что-то вроде этого:
sed -e 's/\(.*[0-9]\{1,3\}=1&\)\"\(,=2&\)\"\([0-9]\{1,3\}=3&\)/\1\2\3/'
Это, кажется, не имеют никакого эффекта вообще, не очень разборчивы на конкретном инструменте, чтобы сделать работу, мне просто нужно, чтобы получить его завершения. У кого-нибудь есть мысли?
Если IP-адрес всегда находится в одном и том же относительном положении, почему бы просто не просто получить доступ к этим элементам и вручную удалить «? например 'list [4] = list [4] [: - 1]; list [5] = list [5] [1:] '. – PrestonH
Так что ясность, я полагаю, может помочь, файл длиной около 200 тыс. Строк, и не все записи имеют несколько IP-адресов, а некоторые строки имеют десятки IP-адресов. То, что я хотел сделать, это просто сделать быстрый сопоставление между последним октетом «,» и первым октетом следующего IP-адреса и просто удалить «out» – Elmore
Итак, как вы узнаете, когда остановка IP? –