Как временно устанавливать приложения в ОЗУ на LiveCD?

Чтобы поменять местами поля 4 и 5:

$ awk -F'\t' '{a=$4; $4=$5; $5=a;} 1' OFS='\t' file
gene    -       chr7    55676   55675   100     100
gene    -       chr7    55679   55678   100     100
gene    -       chr7    55686   55683   NP      100

Как это работает:

  • -F'\t'

    Это устанавливает разделитель полей при вводе на табуляцию.

  • a=$4; $4=$5; $5=a

    Это меняет местами четвертое и пятое поля.

  • 1

    Это загадочное сокращение awk для печати строки.

  • OFS='\t'

    Это указывает awk на использование табуляции в качестве разделителя полей при выводе.

Оставляем заголовок без изменений

Чтобы поменять местами поля во всех строках, кроме первой:

awk -F'\t' -v OFS='\t' 'NR>1{a=$4; $4=$5; $5=a;} 1' file

NR - номер строки. NR>1, расположенный перед командами замены, является условием. Команды замены будут выполняться только в том случае, если условие истинно.

Альтернативный стиль

Некоторые стилисты рекомендуют, чтобы назначение OFS находилось перед кодом:

awk -F'\t' -v OFS='\t' '{a=$4; $4=$5; $5=a;} 1' file
0
13.08.2015, 22:39
0 ответов

Теги

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