Скрипт на shell (Прохождение по файлу)

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

vinment
Сообщения: 2

Скрипт на shell

Сообщение vinment »

Добрый день!
Помогите пожалуйста новичку с написанием срипта на shell.
Есть файлик, в котором только 1 поле. В неv перечислено несколько сотен каких-то ID.
Мне необходимо во что.
При прохождении по этому полю собирать в порцию (допустим по 10 айди через запятую) и у;е после формирования порции вызывать допустим какую-то функцию и в нее передавать порцию (переменную) и т.д. до конца файла.
Заранее огромное спасибо.
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Скрипт на shell

Сообщение Portnov »

cat file | xargs -l 10 some-script.sh
?
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
vinment
Сообщения: 2

Re: Скрипт на shell

Сообщение vinment »

Portnov писал(а):
15.01.2009 17:46
cat file | xargs -l 10 some-script.sh
?


не работает
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: Скрипт на shell

Сообщение Ленивая Бестолочь »

как-нибудь так:

while read line; do
((num++))
str=$(echo "${str}${line}");
if [ "$num" -eq "10" ];then
echo $str
num=0
str=''
fi
done</path/to/file


сейчас нет возможности проверить - так что я только идею показал.
хотя наверно можно красивше это сделать.

кстати:
cat file | xargs -l 10 some-script.sh

-l10 нужно писать слитно, тогда работает.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Скрипт на shell

Сообщение diesel »

vinment писал(а):
15.01.2009 17:57
Portnov писал(а):
15.01.2009 17:46
cat file | xargs -l 10 some-script.sh
?


не работает

ну покажите как оно не работает...
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Скрипт на shell

Сообщение drBatty »

vinment писал(а):
15.01.2009 17:22
При прохождении по этому полю собирать в порцию (допустим по 10 айди через запятую) и у;е после формирования порции вызывать допустим какую-то функцию и в нее передавать порцию (переменную) и т.д. до конца файла.

ID через запятую?
типа
1,44,523,4,2,42,4,2
тогда

Код: Выделить всё

sed -r 's/([0-9]+,){10}/&\n/g' file.txt

эта команда разрежет файл на строки, в каждой строке по 10 ID (кроме последней, в ней может быть меньше).
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали: