Извлечь информацию из нескольких файлов журнала

PATH=$(tr ":" "\n" <<<"$PATH" | grep -Fxv "$HOME/mypython" | paste -sd:)
0
15.11.2018, 01:48
2 ответа

Вы можете попробовать что-то вроде

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— это файл, содержащий имена ваших каталогов. Точно так же вы должны иметь возможность заменить любую часть пути к файлу в зависимости от ваших требований.

0
28.01.2020, 04:09

sed работает с входным потоком, который не нужно ограничивать одним файлом; вместо этого используйте несколько файлов, например. путем предоставления подстановочных знаков в путях к файлам, таких как.../ERS*/.../*log

0
28.01.2020, 04:09

Теги

Похожие вопросы