Как увеличить столбец с помощью AWK

В качестве обходного пути вы можете использовать display_filter setting

Добавьте в .muttrc:

set display_filter="sed -e '/^Tags:.*/d'"
3
14.06.2017, 03:21
2 ответа
$ awk '{$(NF+1) = "name_"(NR-1)} 1' file
insert_buffer cell_a name_0
insert_buffer cell_b name_1
insert_buffer cell_b name_2

Если вы хотите использовать свою переменную вместо встроенной -в счетчике записей NR, то например

$ awk '{$(NF+1) = "name_"i++} 1' file
insert_buffer cell_a name_0
insert_buffer cell_b name_1
insert_buffer cell_b name_2

Если вы хотите вставить новое поле в другое место, то один из способов сделать это — добавить его в начало или конец существующего поля вместе с дополнительным разделителем выходных полей OFS, например. вставить перед вторым полем

$ awk '{$2 = "name_"i++ OFS $2 } 1' file
insert_buffer name_0 cell_a
insert_buffer name_1 cell_b
insert_buffer name_2 cell_b
4
27.01.2020, 21:18

Это можно сделать с помощью редактора sed, как указано:

Обратите внимание, что, поскольку sedне имеет понятия об арифметике, это можно сделать другими средствами.

the variable $n stores the column number where you want the new data placed.

n=2;
sed -ne 1i\\ -e 0 -e p\;= yourfile |\
sed -nE "N;s/\S\+/&\n/$n;s/\(.*\)\n\(.*\)\n/\2 name_\1 /p"

Результаты

insert_buffer name_0  cell_a
insert_buffer name_1  cell_b
insert_buffer name_2  cell_c
1
27.01.2020, 21:18

Теги

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