Добрый день!
Помогите пожалуйста новичку с написанием срипта на shell.
Есть файлик, в котором только 1 поле. В неv перечислено несколько сотен каких-то ID.
Мне необходимо во что.
При прохождении по этому полю собирать в порцию (допустим по 10 айди через запятую) и у;е после формирования порции вызывать допустим какую-то функцию и в нее передавать порцию (переменную) и т.д. до конца файла.
Заранее огромное спасибо.
Скрипт на shell (Прохождение по файлу)
Модераторы: /dev/random, Модераторы разделов
-
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
Re: Скрипт на shell
cat file | xargs -l 10 some-script.sh
?
?
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
-
- Сообщения: 2
-
- Бывший модератор
- Сообщения: 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 нужно писать слитно, тогда работает.
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 нужно писать слитно, тогда работает.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
-
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Скрипт на shell
ID через запятую?
типа
1,44,523,4,2,42,4,2
тогда
Код: Выделить всё
sed -r 's/([0-9]+,){10}/&\n/g' file.txt
эта команда разрежет файл на строки, в каждой строке по 10 ID (кроме последней, в ней может быть меньше).