b) устанавливает переменную в значение в первой позиции (то есть вслева от запятой)
c) сравнить значение переменной с каждой позицией в массиве.Если значение находится в массиве, выполните одну команду, в противном случае вставьте это значение в первый доступный слот в массиве.
co: 7077, he17208am3200816internet.pdf, he17208am3200917internet.pdf co: 7077, he17208am3200817internet.pdf, he17208am3200918internet.pdf co: 7077, he17208am3200818internet.png, hef.pdf, tra210051internet.pdf, tra21005101internet.pdf co: 7162, tra210051appinternet.pdf, tra21005102internet.pdf co: 7178, tra4157l11201021internet.pdf, tra4158l11201021internet.pdf * * * 101 * 101 * 1012, 1010121010, 1010121011, 1010121011, 11011, 11011, 11010, 11011, 11011, 11011, 11011, 11011, 11010, 11014, 11011, 11011, 11014, 11011, 11014, 11014, только для того, что вы можете сделать это с помощью Интернета.Пока мой скрипт выглядит так:
#!/bin/bash
declare -a array
anum=0
src=source.csv
pid=0
while read line;
do
pid=$( echo $line | awk '{print$1}' FS=",")
for n in "${array[@]}";
do
if [[ "$pid" = "$n" ]] ;
then
echo Duplicate value: "$pid";
else
array[$anum]="$pid"
anum=$(( $anum +1 ))
fi
done
done < $src
echo ${array[@]}
Когда скрипт выполняется, pid успешно устанавливается и сбрасывается при каждой итерации цикла while, но, очевидно, вложенный цикл for никогда не запускается.
Из моего Google'а я подозреваю, что это имеет отношение к трубе в pidлинии, но я буду ошибаться, если смогу выяснить, как заставить это работать.
Любая помощь очень ценится.