awk не работает с qsub

Я пытаюсь запустить команду, которая что-то вроде этого

intersectBed -a yeast.v2.bed -b cov.txt -wa -wb | awk -v OFS="\t" '{print $7,$8,$9,$6,$11,$10}' > out.txt 

out.txt выглядит так:

 chrI 151006 151096 0 chrI 142253 142619 53 chrI 87387 87500 8 

Я работаю над кластером, и когда я запомню указанную выше команду (которая отправляется в кластер), я получаю файл out.txt, подобный этому

 chrIt151006t151096t0 chrIt142253t142619t53 chrIt87387t87500t8 

Командная строка, которую я использую с qsub, такова:

 qsub -l h_vmem=4G -cwd -jy -by -N test "intersectBed -a yeast.v2.bed -b cov.txt -wa -wb | awk -v OFS="\t" '{print \$7,\$8,\$9,\$6,\$11,\$10}' > out.txt" 

Как вы можете видеть, мне нужно избегать каждого столбца ($) с обратной косой чертой, чтобы оболочка не рассматривала ее как свою переменную. Но некоторые как вкладка не работает. Может ли кто-нибудь сказать мне, что здесь происходит. Конечно, я могу использовать sed 's/t/\t/g' после команды awk, но мне нужно понять, что здесь происходит и почему это не работает.

заранее спасибо

    One Solution collect form web for “awk не работает с qsub”

    Ты делаешь:

      qsub ... "intersectBed ... -v OFS="\t"...more double-quoted text" 

    Итак, \t находится вне двойных кавычек. Для оболочки, вне кавычек, \ – другой оператор цитирования. Там \t похоже на 't' или "t" , поэтому просто t .

    Вы на самом деле делаете awk -v OFS=t .

    Использование:

      qsub... "inter... | awk -v OFS='\t' '{print \$7,\$8,\$9,\$6,\$11,\$10}' > out.txt" 

    Или беспокоиться только о символах с одной кавычкой:

      qsub... 'inter... | awk -v OFS="\t" '\''{print $7,$8,$9,$6,$11,$10}'\'' > out.txt' 

    set -x – ваш друг, чтобы исследовать эту проблему с цитированием.

    Linux и Unix - лучшая ОС в мире.