in sostanza questo file di testo è un lista di percorsi di file ed io devo copiare questi file in un altra cartella .
grazie ancora in anticipo

Codice: Seleziona tutto
N=0
while read riga[$N]
do
echo riga$N: ${riga[$N]}
N=$(($N+1));
done < file_input.txt
Codice: Seleziona tutto
echo ${riga[numero_qualsiasi]}
Codice: Seleziona tutto
N=0
while read riga[$N]
do
N=$(($N+1))
done < log.txt
for ri in "${riga[@]}"
do
cp "$ri" /mnt/home/Documents/bac
done

Codice: Seleziona tutto
#!/bin/bash
if [ -d file_trovati ]
then
rm -r file_trovati
fi
if [ -e log.txt ]
then
rm log.txt
fi
echo "INSERISCI I PATTERN DA RICERCARE"
read apat bpat cpat dpat epat
if [ -z $apat ] && [ -z $bpat ] && [ -z $cpat ] && [ -z $dpat ] && [ -z $epat ]
then
echo "nessun pattern inserito"
exit 1
else
pattern=( $apat $bpat $cpat $dpat $epat )
fi
echo "INSERISCI LE CARTELLE IN CUI CERCARE"
read acar bcar ccar dcar ecar
if [ -z $acar ] && [ -z $bcar ] && [ -z $ccar ] && [ -z $dcar ] && [ -z $car ]
then
def=1
else
def=0
fi
cartelle=( $acar $bcar $ccar $dcar $ecar )
for x in "${cartelle[@]}"
do
if [ -d "$x" ]
then
echo "cartella corretta"
else
echo "cartella inesistente errore"
exit 1
fi
done
if [ $def -eq 0 ]
then
for pa in "${pattern[@]}"
do
for ca in "${cartelle[@]}"
do
find "$ca" -name "*$pa*" >> log.txt
done
done
else
for pa in "${pattern[@]}"
do
find . -name "*$pa*" >> log.txt
done
fi
N=0
while read riga[$N]
do
N=$(($N+1))
done < log.txt
mkdir file_trovati
for ri in "${riga[@]}"
do
cp "$ri" /mnt/home/Documents/file_trovati
done

Codice: Seleziona tutto
${#pattern[@]}Codice: Seleziona tutto
N=0
while read riga[$N]
do
if [ "${riga[$N]}" != '' ]
then cp "${riga[$N]}" /mnt/home/Documents/bac
fi
N=$(($N+1))
done < log.txtVisualizzano questa sezione: 0 utenti iscritti e 4 ospiti