Если вы хотите добавить столбец в файл, вы можете сделать следующее.
примечание: Мы предполагаем, что разделитель полей FS
равен строке "fs"
. Вы можете заменить это на что угодно, или если вы просто используете в качестве разделителя полей, вы можете удалить часть BEGIN{FS=OFS="fs"}
в любом из следующих решений.
добавить столбец в начале:
awk 'BEGIN{FS=OFS="fs"}{print value OFS $0}' file
добавить столбец в конце:
awk 'BEGIN{FS=OFS="fs"}{print $0 OFS value}' file
добавить столбец перед столбцом n
:
awk 'BEGIN{FS=OFS="fs"}{$n = value OFS $n}1' file
добавить столбец после столбца n
:
awk 'BEGIN{FS=OFS="fs"}{$n = $n OFS value}1' file
добавить столбец перед каждым из столбцов n1
<<code>n2 <... <<code>nm: (начало сзади)
awk 'BEGIN{FS=OFS="fs"; split("n1,n2,n3,...,nm",a,",")}
{for(i=m;i>0;--i) $(a[i]) = value OFS $(a[i])}1' file
или для разных значений
awk 'BEGIN{FS=OFS="fs"; split("n1,n2,n3,...,nm",a,","); split("value1,value2,...,valuem",v,",")}
{for(i=m;i>0;--i) $(a[i]) = v[i] OFS $(a[i])}1' file
добавить столбец после каждого столбца n1
<<code>n2 <... <<code>nm: (начало сзади)
awk 'BEGIN{FS=OFS="fs"; split("n1,n2,n3,...,nm",a,",")}
{for(i=m;i>0;--i) $(a[i]) = $(a[i]) OFS value}1' file
или для разных значений
awk 'BEGIN{FS=OFS="fs"; split("n1,n2,n3,...,nm",a,","); split("value1,value2,...,valuem",v,",")}
{for(i=m;i>0;--i) $(a[i]) = $(a[i]) OFS v[i]}1' file