Извините за плохое название, не стесняйтесь приспосабливать его к чему-то более подходящему.индексный массив: 1 до длины массива
Как я могу индексировать массивы с использованием zsh
или bash
скриптов, как я делаю для списков в R
ниже;
# Some lists with the same number of elements
list1 <- list(sample(letters,10))
list2 <- list(1:10)
for(i in 1:length(list1)) {
a <- list1[[1]][i]
b <- list2[[1]][i]
}
print(paste(a,b)) # Or some other function where a and b are used simultaneously
[1] "f 1"
[1] "e 2"
[1] "t 3"
[1] "s 4"
[1] "c 5"
[1] "o 6"
[1] "p 7"
[1] "y 8"
[1] "k 9"
[1] "d 10"
Код ниже, очевидно, только печатает последние элементы из обоих списков, так как я не нашел способ сделать 1 до длины массива
# dummy data
echo 'A 1' > A.txt
echo 'B 1' > B.txt
echo 'C 1' > C.txt
echo 'A,2' > A.csv
echo 'B,2' > B.csv
echo 'C,2' > C.csv
txtlist=(*.txt) # create an array of .txt files
csvlist=(*.csv) # create an array of .csv files
# in zsh $#array returns the length of the array, so
for i in $#txtlist; do
a=$txtlist[i]
b=$csvlist[i]
echo $a,$b # Or some other function where a and b are used simultaneously
done
#C.txt,C.csv
Все указатели были бы очень оценил, спасибо!
Спасибо за ответ, его именно то, что мне нужно. Не могли бы вы немного подробнее рассказать о синтаксисе zsh? –