PATH=$(tr ":" "\n" <<<"$PATH" | grep -Fxv "$HOME/mypython" | paste -sd:)
Вы можете попробовать что-то вроде
for filepath in $(ls -1 /home/travc/seq_v2/AgamP4_v2/samples/*/qualimap/qualimap.log);
do
sed -n '/Num mapped reads/p' $filepath >> /data/home/odkirling/Mali/Yeah1.txt
done
Для этого потребуется, чтобы путь до и после *
был точно таким же.
Обновление
Если ваши файлы расположены в последовательности, скажем, от ERS224561
до ERS224591
, вы можете использовать seq 61 91
. В этом случае скрипт будет
for filenum in $(seq -w 30 150);
do
sed -n '/Num mapped reads/p' "/home/travc/seq_v2/AgamP4_v2/samples/ERS2245$filenum/qualimap/qualimap.log" >> /data/home/odkirling/Mali/Yeah1.txt
done
Или допустим, у вас есть список каталогов в текстовом файле в следующем формате
ERS224591
ERS224592
ERS224523
ERS224525
.
.
.
тогда вы можете сделать что-то вроде
for dirname in $(cat dir_names.txt);
do
sed -n '/Num mapped reads/p' "/home/travc/seq_v2/AgamP4_v2/samples/$dirname/qualimap/qualimap.log" >> /data/home/odkirling/Mali/Yeah1.txt
done
dir_names.txt
— это файл, содержащий имена ваших каталогов. Точно так же вы должны иметь возможность заменить любую часть пути к файлу в зависимости от ваших требований.
sed
работает с входным потоком, который не нужно ограничивать одним файлом; вместо этого используйте несколько файлов, например. путем предоставления подстановочных знаков в путях к файлам, таких как.../ERS*/.../*log