The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Разделитель в массиве, !*! globi, 07-Май-16, 19:12  [смотреть все]
Я что-то не понимаю. Делаю построчно чтение из файла в массивы, указываю разделитель :
Начинаю проверять на вывод с 2ого элемента и мне выводится начиная с 2ого символа


IFS=:
index=0
while read line; do
    array[$index]="$line"
    index=$(($index+1))
done < /home/ubuntu/arr
for ((a=0; a < ${#array[*]}; a++))
do
    echo "$a: ${array[$a]:1}"
done

То есть, вместо вывода
0: name2:name3:1234
1: name2:name3:1234
2: name2:name3:1234
3: name2:name3:1234

Мне выводится
0: ame1:name2:name3:1234
1: ame1:name2:name3:1234
2: ame1:name2:name3:1234
3: ame1:name2:name3:1234

Пробовал указать IFS разными способами  IFS=$':'  IFS=":"
Менял и сам разделитель на любой другой символ - результат тот же

  • Разделитель в массиве, !*! globi, 00:33 , 08-Май-16 (1)
    >[оверквотинг удален]
    > 1: name2:name3:1234
    > 2: name2:name3:1234
    > 3: name2:name3:1234
    > Мне выводится
    > 0: ame1:name2:name3:1234
    > 1: ame1:name2:name3:1234
    > 2: ame1:name2:name3:1234
    > 3: ame1:name2:name3:1234
    > Пробовал указать IFS разными способами  IFS=$':'  IFS=":"
    > Менял и сам разделитель на любой другой символ - результат тот же

    Или может есть другое решение для моей задачи. Есть файл, в котором хранятся данные вида
    name1:1234
    name2:2345
    name3:3456
    name4:4567
    name5:5678
    name6:6789
    и т.д. - имена и цифры разные

    Я считываю массив и получаю переменные, которые дальше передаю в скрипт
    Т.е. получаю
    var1='name1'
    var2=1234  
    Далее эти значение отработали в скрипте например
    awk -F" *;" '$3< '$var2'' /home/blabla.csv > /home/try_"$var1".csv

    И дальше передаю следующие значение. Получается
    var1='name2'
    var2='2345'  

    • Разделитель в массиве, !*! globi, 01:15 , 08-Май-16 (2)
      >[оверквотинг удален]
      > и т.д. - имена и цифры разные
      > Я считываю массив и получаю переменные, которые дальше передаю в скрипт
      > Т.е. получаю
      > var1='name1'
      > var2=1234
      > Далее эти значение отработали в скрипте например
      > awk -F" *;" '$3< '$var2'' /home/blabla.csv > /home/try_"$var1".csv
      > И дальше передаю следующие значение. Получается
      > var1='name2'
      > var2='2345'

      Всё, я видимо на майских не стоит работать ))


      #!/bin/bash
      while read line ; do
        IFS=":"
        set -- $line
        var1$1
        var2=$2
      awk -F" *;" '$3< '$var2'' /home/blabla.csv > /home/try_"$var1".csv
      done < /home/arr




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

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