Покажи Публикации - foo
* Виж публикациите на потр. | Виж темите на потр. | Виж прикачените файлове на потр
Страници: [1]
1  Програмиране / Общ форум / bash script -: Mar 06, 2005, 18:41
':0'5-->
Цитат (anger @ Март 05 2005,16':0'5)
Здравейте,
Опитвам се да напиша едно скриптче, което чете стойности от .txt файл с n реда и m полета на ред. Доколкото прочетох, bash поддържа само едномерни масиви, а на мен ми се искаше да вкарам в масив данните от файла и да мога да оперирам с тях. Ако можете, дайте ми някакъв прост пример с цикъл, четене от фаил и масив.
Благодаря предварително

Примерен код

#!/bin/bash -f

_file="anger.txt"

# file:anger.txt:
#
# 11 12 13
# 21 22 23
# 31 32 33

_ncol=$1
_nrow=$2

_i=1

for _item in $(cat $_file); do

    a[$_i]=$_item

    (( _i++ ))
done

function index
{
    local _row=$1
    local _col=$2

    local _index=$(echo "($_row - 1) * $_ncol + $_col" | bc)

    echo $_index
}

for (( _i = 1; _i <= _nrow; _i++ )); do

    for (( _j = 1; _j <= _ncol; _j++ )); do

   _index=$(index $_i $_j)

   echo -n "${a[_index]} "
    done

    echo
done

# ouptut: ./anger.bash 3 3
#
# 11 12 13
# 21 22 23
# 31 32 33

exit 0
Страници: [1]