PDA

Просмотр полной версии : Sed \ awk help нужна.


Neow15ard
14.02.2011, 22:42
Помогите с шелл скриптом.
Задача взять из текстового файла ip : port (забиты построчно, несколько строк) 2 случайных ИП с портом и в другом файле в строках

HTML:



parent 500 http IP PORT
parent 500 http IP PORT


произвести замену существующих ip и портов на новые.

- Делаю random прокси(что б каждый час менялся). как на proxy.void.ru .

Не допираю как составить.

modelsonline
15.02.2011, 01:32
Замену строки в файле сделать нельзя никак, только через другой файл и кажется нельзя в одном пайпе.

ip=$(cat $file |cut -d":" -t1)
port=$(cat $file |cut -d":" -t2)

sed не нужен. Такое лучше делать в базе.

Neow15ard
15.02.2011, 10:35
modelsonline написал(а):

Замену строки в файле сделать нельзя никак, только через другой файл и кажется нельзя в одном пайпе.

ip=$(cat $file |cut -d":" -t1)
port=$(cat $file |cut -d":" -t2)

sed не нужен. Такое лучше делать в базе.




Вообщето по всем параметрам идеально подходит именно sed
но так как надо выдрать данные из одного файла и вставить в другой то тут вероятно и awk
И это решение



HTML:



sed -i 's/pppp/ttttt/' file


подходит но нужна регулярка вместо pppp для замены (ssed) на ttttt и как это описать в awk что бы замену произвести.

modelsonline
15.02.2011, 23:22
Еще раз, "вставить в другой" нельзя, нужно через временный файл делать.

1. взять соксы как я сказал (только в цикле сделать, с рандомом или как там сообразиш)
можно файл в массив кинуть например так
socks=(`cat $socks`)
и работать с ним, либо рандомно строку из файла прочитать
2. сделать пайп:
чтение из файла где нужно заменить | если (проверка строки на совпадение с ip с помощью grep) { тут твой sed } иначе {echo строка} >временный файл
3. mv временный файл куда надо