входного файла: Имя файла = 'sample1.txt'множественным имя соответствует шаблону
лев является хорошим другом (Host = лев) (Порт = животное) и тигр (Host = Tiger) (Port = а)
гамбургер питание (Host = Burger) (Port = Food)
у меня есть данные, как показано выше TXT file.i хотят собрать час ост и порт в каждой строке из текстового файла и поместить их в новый текстовый файл
Обязательный Outfile:
- лев: животное
- Tiger:
- Burger: Продукты
Код, использованный до nw:
cat sample1.txt | perl -ne 'print "$1=$2\n" if(/Host=([\w.]*.'-'*[\w.]*.).*Port=(\d+)/)' > sample2.txt
sed 's|[()]||g' sample2.txt > sample3.txt
Полученные результаты:
- лев: животное
- Burger: Продукты
Не получает Тигр и:
Проблемы: Я нахожусь не удалось получить хост и порт в ту же строку, которая присутствует более одного раза .. В некоторой строке у нее есть только один номер хоста и порта. В другой строке есть более одного значения хоста и порта. pls помогают мне перенести это .. спасибо ..:)
'Perl -ne«Host = (\ W +) * Порт = (\ W +)/g && print "$ 1 = $ 2 \ n"; ''- на основе ваших данных образца. Полезный трюк - вы можете сравниться с отрицательным, если хотите «все до скобки» как «[^)] +' например. – Sobrique