nomeando o arquivo de saída no loop while

nomeando o arquivo de saída no loop while

Eu tenho um arquivo input.txtcom três colunas

A B Z
C D Y
E F X

Quero ler os dois primeiros campos, executar alguma função e nomear a saída com o último campo.

while IFS=" " read -r f1 f2 f3; do cat $f1 $f2 > $f3; done < file.txt

Como posso aplicar isso a códigos mais longos

o input.sample.texttem as seguintes três colunas

../Data/G20P1sc-C05-R1.fastq.gz ../Data/G20P1sc-C05-R1.fastq.gz G20P1sc-C05
../Data/G20P1sc-C08-R1.fastq.gz ../Data/G20P1sc-C08-R1.fastq.gz G20P1sc-C08
 while IFS=" " read -r f1 f2 f3; do rsem-calculate-expression --star --star-path /share/pkg/star/2.7.0e/bin --temporary-folder --star-gzipped-read-file --paired-end $f1 $f2 ../genome_indices/rsem-star/rsem-star ../test_results/$f3; done < src_pdm3012/input.sample.text 

A saída tem o seguinte erro

EXITING: FATAL INPUT ERROR: empty value for parameter "outFileNamePrefix" in input "Command-Line-Initial"
SOLUTION: use non-empty value for this parameter

Tento usar explicitamente o --outFileNamePrefixe ainda dá o mesmo erro

while IFS=" " read -r f1 f2 f3; do rsem-calculate-expression --star --star-path /share/pkg/star/2.7.0e/bin --temporary-folder --star-gzipped-read-file --paired-end $f1 $f2 ../genome_indices/rsem-star/rsem-star --outFileNamePrefix $f3; done < ../src_pdm3012/input.sample.text

Responder1

Sugiro awkscript para fazer isso:

awk '{ print $1,$2 > $3}'

Claro que você deve ter certeza de que ela $3existe (e é única) e que não há nenhuma dúvida sobre qual é a terceira coluna, ou seja, as colunas 1, 2 e 3 não devem conter separadores de campo.

awktambém permitirá muitas manipulações nas duas primeiras colunas.

Responder2

Você pode redirecionar um grupo de comandos ou qualquer forma de comando composto para redirecionar a saída de mais de um comando, seja um loop while ou não:

while IFS=" " read -r f1 f2 f3; do
  {
    cat < "$f1"
    echo whatever
    cat < "$f2"
    echo end
  } > "$f3"
done < file.txt

Lembre-se também de que em shells POSIX, as expansões de variáveis ​​precisam ser citadas.

informação relacionada