FDT, перемещенный U-Boot, не может быть доступен Linux (в highmem)

давайте сделаем это шаг за шагом

Если значение поля столбца 9 ($ i) равно 0, то замените его столбцом 6

if ( $i == 0 ) $i=$6 ;

, а если оно равно 2, замените его столбцом 7.

if ( $i == 2 ) $i=$7 ;

Если это - 1, то его следует оставить как таковой

# 

, а 1 следует пометить как столбец 6 / столбец 7.

if ( $i == 1 ) $i=$6 "/" $7 ;

Это я должен делать неоднократно для всех полей в каждом до конца каждой строки.

NR>1  {for(i=9;i<=NF;i++)
        {  } ## ifs ;
       ## for loop is done
       print ; ## print to be done at end of loop.
       } 

Все вместе,

помещает все эти строки в файл a.awk

NR>1  {for(i=9;i<=NF;i++)
        { if ( $i == 0 ) $i=$6 ;
          if ( $i == 2 ) $i=$7 ;
          if ( $i == 1 ) $i=$6 "/" $7 ;
       } ## if ;
       ## for loop is done
       print ;
       } 

, где

  • NF - встроенная функция для 'Number of Field'
  • print будет print

С образцами данных

awk -f a.awk sample.txt 
AX-147208720 Affx-152069361 Aradu.A01 5066618 TTTCTTGGCGGCATTGCTGATTTCTTATCATCCAA[A/G]CCATTCTTCTTTGTGTCAGGGTGGAATCTAAAATT A G AX-147208720 A G A A G
AX-147209428 Affx-152065184 Aradu.A01 9154456 TAGCTGTTGACATGTCAATTGCTAAGGGAGAGTCC[C/T]TTGGAAAGCCCTACATCATTCATCAAATCATTCTC T C AX-147209428 C T C T T
AX-147209429 Affx-152069061 Aradu.A01 9155638 TCAGCAAATGAACCTCTTAAGAAACCAATTCGGTC[A/G]TTGCTTATCACTAAGCTTTCAATCCCTTTCACTGG A G AX-147209429 G A G A A
AX-147209430 Affx-152031763 Aradu.A01 9157305 CGGCGCTCTAAAATCCAGATAACAACTCCAACAAC[C/T]AAGAAAAAGGTTGCTGTGACAAACCACATCATTGG T C AX-147209430 C T C T T
AX-147209432 Affx-152067683 Aradu.A01 9205209 CCCTTAATTGGGGAAGAGAGTTGTTCCACTGTGAG[A/G]ATTGATGTTAGGCTTGCAATGTAGCTTGAATTCAG A G AX-147209432 G A G A A
AX-147209600 Affx-152035192 Aradu.A01 9873259 CTCCTTCTCTCGGTTTCCAAGACAAAAGAAAGACA[A/G]ATATCTTTTAAGATCTTCCTCAGTTTTGTTCTCCC A G AX-147209600 G A A A A
AX-147209601 Affx-152067325 Aradu.A01 9873427 TGGCCACATTGGAACCACAACATACACAGTGAAGT[C/T]TTGCTTAGCTTTAATCTTGCTAACAATTTTAAGTG T C AX-147209601 C T T T T
AX-147209615 Affx-152066978 Aradu.A01 9974460 AAAACTCACAATTCTTCTTTGATGATCTGAGTCCT[C/T]TCCATTTGACAATTTAGCATCCACCACCACAATCT T C AX-147209615 T C C C C

Помните, что awk не будет редактировать исходный файл. Вы должны использовать:

awk -f a.awk file1.txt > file2.txt
cp file2.txt file1.txt
rm file2.txt
2
26.01.2016, 10:54
0 ответов

Теги

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