Вы можете попробовать использовать что-то вроде:.
sed 's/$/:80/' ips.txt > new-ips.txt
** При условии, что ваш формат файла так же, как вы описали в своем вопросе *
Команда s///
подмена ссылок (находит) конец каждой строки в вашем файле (с использованием символа $
), а затем добавляется (заменяет) :80
в конец каждой строки. Файл ips.txt
ваш входной файл ... и new-ips.txt
ваш вновь созданный файл (конечный результат ваших изменений.)
Кроме того, если у вас есть список номеров IP, которые случаются иметь номера портов прилагается уже (как было отмечено Vlad и как дано aragaer), вы можете попробовать использовать что-то вроде:
sed '/:[0-9]*$/ ! s/$/:80/' ips.txt > new-ips.txt
так, например, если ваш входной файл выглядел что-то как этот (обратите внимание на :80
):
127.0.0.1
128.0.0.0:80
121.121.33.111
Окончательный результат будет выглядеть примерно так:
127.0.0.1:80
128.0.0.0:80
121.121.33.111:80
Будет ли он добавлять ': 80' в строку, где': 80' уже добавлен? – Vlad
@ Vlad Да; но в соответствии с введенным примером ввода OPs ... в списке IP-адресов не должно быть номеров портов. :) Даже если бы ... OP мог просто запустить другой sed 's ///' заранее, чтобы вынуть любые номера портов в конце каждой строки. – summea
Хорошо, просто уточняю ... Может быть, должно быть условие, чтобы исключить строки, где порт уже существует. – Vlad