Есть текстовый файл, в котором в столбик перечислены IP-адреса. Необходимо все эти адреса представить в строчку. Но лучше чтобы в строчке было лишь по 10 адресов. Смотрел на bash-е, но что-то не нашёл как в цикле применять лишь к каждым 10 значениям удаление переноса строки.Как сделать шаг в цикле? Что-то типа:
for (( i=0; i<=100; i += 10 )); do echo $i; done
но применительно к моей задаче? Какой там синтаксис? Или это вообще не так надо делать?
> Есть текстовый файл, в котором в столбик перечислены IP-адреса. Необходимо все эти
> адреса представить в строчку. Но лучше чтобы в строчке было лишь
> по 10 адресов. Смотрел на bash-е, но что-то не нашёл как
> в цикле применять лишь к каждым 10 значениям удаление переноса строки.
$ seq 25 |xargs -n 10
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25
$ _
> но применительно к моей задаче? Какой там синтаксис? Или это вообще не
> так надо делать?Есть много способов... ///...скальпировать?! ...лошадь!?
> Есть текстовый файл, в котором в столбик перечислены IP-адреса. Необходимо все эти
> адреса представить в строчку. Но лучше чтобы в строчке было лишь
> по 10 адресов. Смотрел на bash-е, но что-то не нашёл как
> в цикле применять лишь к каждым 10 значениям удаление переноса строки.
> Как сделать шаг в цикле? Что-то типа:
> for (( i=0; i<=100; i += 10 )); do echo $i; done
> но применительно к моей задаче? Какой там синтаксис? Или это вообще не
> так надо делать?убирать все переводы строки, а на каждом 10-м - ставить.
> убирать все переводы строки, а на каждом 10-м - ставить.Ну-у-у... в общем, ....
$ seq 25 |(i=0; while read l; do if let i=++i; then echo -n "$l"; else echo "$l";fi;done; let i && echo)
12345678910
11121314151617181920
2122232425
$ _
... да.
Не, для меня всё гораздо проще :)
cat file.txt | xargs -n 10
В файле IP-адреса
Спасибо :)
> cat file.txt | xargs -n 10Только что-то я никак не соображу... )) мне надо в выводе этого перед каждой строчкой добавить фразу, допустим "word". Как это сделать? Вложенный цикл и им прикручивать echo "word"? Может как-то с помощью sed сделать замену? Ещё как-то?
>> cat file.txt | xargs -n 10
> Только что-то я никак не соображу... )) мне надо в выводе этогоТут bash бессилен.
> перед каждой строчкой добавить фразу, допустим "word". Как это сделать? Вложенный
> цикл и им прикручивать echo "word"? Может как-то с помощью sed
> сделать замену? Ещё как-то?Много способов ободрать лошадь.
| xargs -n 10 echo word
| xargs -n 10 |sed 's/^/word /'
$ seq 25 |(i=0; while read l; do if let i=++i%10; then [ $i = 1 ] && echo -n word; echo -n "$l"; else echo "$l";fi;done; let i && echo)
word12345678910
word11121314151617181920
word2122232425
$ _
> | xargs -n 10 echo word
> | xargs -n 10 |sed 's/^/word /'Блин, я ж вроде именно так и делал, но что-то не срослось.
Ещё раз спасибо. Может поумнею со временем )