Манипуляция колонна с использованием awk

QEMU может работать в любом режиме, обеспечивая полную эмуляцию системы (и работает полная операционная система) или только эмуляция ЦП для одного процесса .

QEMU также может работать с KVM или без него; если KVM доступен, QEMU может использовать его как ускоритель.

4
16.09.2018, 12:56
2 ответа

Perl очень лаконичен для этого :разбивает каждую строку на слова, выталкивает последнее слово и вставляет его в индекс 3 (0 -на основе)

$ perl -lane 'splice @F, 3, 0, pop(@F); print "@F"' file | column -t
chr10  181243  225933  36  1  1  1  10   0
chr10  181500  225933  35  1  1  1  106  0
...
7
27.01.2020, 20:47

Чтобы заменить четвертое поле последним полем:

awk -v OFS="\t" '{ $4 = $NF; $NF=""; print }

Чтобы вставить последнее поле перед четвертым полем, нам нужно проявить немного творчества:

awk -v OFS="\t" '{temp=$NF; for( i=NF;i>4;i-- ) {$i=$(i-1)}; $4=temp  ; print}'

Это позволит сохранить последнее поле, пропустить все поля и переместить каждое из них назад к четвертому вперед, а затем поместить желаемое четвертое поле на место:

$ echo {1..10} | awk -v OFS="\t" '{temp=$NF; for( i=NF;i>4;i-- ) {$i=$(i-1)}; $4=temp  ; print}'
1   2   3   10  4   5   6   7   8   9
4
27.01.2020, 20:47

Теги

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