The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Убрать перенос строки скриптом на bash"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на рабочей станции (Консоль)
Изначальное сообщение [ Отслеживать ]

"Убрать перенос строки скриптом на bash"  +/
Сообщение от Seryoga2014 (ok) on 30-Май-18, 18:15 
Есть текстовый файл, в котором в столбик перечислены IP-адреса. Необходимо все эти адреса представить в строчку. Но лучше чтобы в строчке было лишь по 10 адресов. Смотрел на bash-е, но что-то не нашёл как в цикле применять лишь к каждым 10 значениям удаление переноса строки.

Как сделать шаг в цикле? Что-то типа:
for (( i=0; i<=100; i += 10 )); do echo $i; done
но применительно к моей задаче? Какой там синтаксис? Или это вообще не так надо делать?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

1. "Убрать перенос строки скриптом на bash"  +/
Сообщение от Andrey Mitrofanov on 30-Май-18, 19:00 
> Есть текстовый файл, в котором в столбик перечислены 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
$ _

> но применительно к моей задаче? Какой там синтаксис? Или это вообще не
> так надо делать?

Есть много способов...   ///...скальпировать?! ...лошадь!?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Убрать перенос строки скриптом на bash"  +/
Сообщение от ыы on 30-Май-18, 19:02 
> Есть текстовый файл, в котором в столбик перечислены IP-адреса. Необходимо все эти
> адреса представить в строчку. Но лучше чтобы в строчке было лишь
> по 10 адресов. Смотрел на bash-е, но что-то не нашёл как
> в цикле применять лишь к каждым 10 значениям удаление переноса строки.
> Как сделать шаг в цикле? Что-то типа:
> for (( i=0; i<=100; i += 10 )); do echo $i; done
> но применительно к моей задаче? Какой там синтаксис? Или это вообще не
> так надо делать?

убирать все переводы строки, а на каждом 10-м - ставить.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Убрать перенос строки скриптом на bash"  +/
Сообщение от Andrey Mitrofanov on 30-Май-18, 19: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
$ _


... да.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Убрать перенос строки скриптом на bash"  +/
Сообщение от Seryoga2014 (ok) on 31-Май-18, 10:10 
Не, для меня всё гораздо проще :)
cat file.txt | xargs -n 10
В файле IP-адреса
Спасибо :)


Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Убрать перенос строки скриптом на bash"  –1 +/
Сообщение от Seryoga2014 (ok) on 31-Май-18, 10:47 
> cat file.txt | xargs -n 10

Только что-то я никак не соображу... )) мне надо в выводе этого перед каждой строчкой добавить фразу, допустим "word". Как это сделать? Вложенный цикл и им прикручивать echo "word"? Может как-то с помощью sed сделать замену? Ещё как-то?


Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Убрать перенос строки скриптом на bash"  +/
Сообщение от Andrey Mitrofanov on 31-Май-18, 12:30 
>> 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
$ _

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Убрать перенос строки скриптом на bash"  +/
Сообщение от Seryoga2014 (ok) on 31-Май-18, 13:22 
> | xargs -n 10 echo word
> | xargs -n 10 |sed 's/^/word /'

Блин, я ж вроде именно так и делал, но что-то не срослось.
Ещё раз спасибо. Может поумнею со временем )

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру