Сохранить эхо как вывод в скрипте - PullRequest
0 голосов
/ 28 ноября 2011

Вот немного моего кода:

for((a=1;a<=8000000;a++))
do
  if (($a%4==0))
  then  
      b=`cat 101127_2_aa_1.fastq|head -$a|tail -1|sed 's/\(.\)B*$/\1/g'|wc -c`
      echo `cat 101127_2_aa_1.fastq|head -$(($a-3))|tail -1`
      echo `cat 101127_2_aa_1.fastq|head -$(($a-2))|tail -1|cut -c 1-$(($b-1))`
      echo `cat 101127_2_aa_1.fastq|head -$(($a-1))|tail -1`
      echo `cat 101127_2_aa_1.fastq|head -$a|tail -1|sed 's/\(.\)B*$/\1/g'`
  fi
done

Это если цикл является "эхо" вывода; однако я надеюсь сохранить вывод эха в некоторый файл. И я хочу управлять этим сценарием. Я имею в виду, наверное, что-то. как:

`for((a=1;a<=8000000;a++))
do
  if (($a%4==0))
  then  
      b=`cat 101127_2_aa_1.fastq|head -$a|tail -1|sed 's/\(.\)B*$/\1/g'|wc -c`
      echo `cat 101127_2_aa_1.fastq|head -$(($a-3))|tail -1`
      echo `cat 101127_2_aa_1.fastq|head -$(($a-2))|tail -1|cut -c 1-$(($b-1))`
      echo `cat 101127_2_aa_1.fastq|head -$(($a-1))|tail -1`
      echo `cat 101127_2_aa_1.fastq|head -$a|tail -1|sed 's/\(.\)B*$/\1/g'`
  fi
done` > output

Но, очевидно, это не работает; и я прошу правильный способ сохранить вывод эха в скрипте.

ТНХ

Ответы [ 3 ]

3 голосов
/ 28 ноября 2011

Всегда рекомендуется использовать $ (…) вместо ``.

for((a=1;a<=8000000;a++))
do
  if (($a%4==0))
  then  
      b=$(cat 101127_2_aa_1.fastq|head -$a|tail -1|sed 's/\(.\)B*$/\1/g'|wc -c)
      echo $(cat 101127_2_aa_1.fastq|head -$(($a-3))|tail -1)
      echo $(cat 101127_2_aa_1.fastq|head -$(($a-2))|tail -1|cut -c 1-$(($b-1)))
      echo $(cat 101127_2_aa_1.fastq|head -$(($a-1))|tail -1)
      echo $(cat 101127_2_aa_1.fastq|head -$a|tail -1|sed 's/\(.\)B*$/\1/g')
  fi
done >> output

Обновление:

Как и предполагалось @ Sorpigal , здесь по-прежнему используется команда cat, когда мы можем сделать то же самое с head

1 голос
/ 28 ноября 2011

Вы можете добавить >> output к каждой из линий эха.

Также echo является избыточным в вашем скрипте. Вместо

echo `cat ...` 

вы можете использовать

cat ...
0 голосов
/ 28 ноября 2011

Просто удалите галочки и продолжайте перенаправление.

В качестве альтернативы вы можете

exec >output

до for.

...