Awk 在所有行中插入具有相同字符串的列
我有这个档案Awk 在所有行中插入具有相同字符串的列,awk,sed,Awk,Sed,我有这个档案 mean.cel sample.cel 1 2 3 4 我想插入第二列标题部分名称的列 这将是预期的结果 mean.cel newcolumn sample.cel 1 sample 2 3 sample 4 我该怎么做呢?我想说 $ awk 'NR==1{print $1, "new column", $2; next} {print $1, "sample", $2}' file mean.cel new column sample.cel 1 sample 2 3
mean.cel sample.cel
1 2
3 4
我想插入第二列标题部分名称的列
这将是预期的结果
mean.cel newcolumn sample.cel
1 sample 2
3 sample 4
我该怎么做呢?我想说
$ awk 'NR==1{print $1, "new column", $2; next} {print $1, "sample", $2}' file
mean.cel new column sample.cel
1 sample 2
3 sample 4
为了使其更加健壮,允许您拥有多个字段(而不仅仅是2个),我们可以说:
awk '{$1 = $1 OFS (NR==1?"new column":"sample")} 1' file
这里的想法是在第一个字段中附加一个新值。通过玩NR
,我们可以根据处于第1行或其他行的情况切换行为
sed '1 {s/ / NewColumn /;b;}
s/ / Sample /' YourFile
- 基于您的示例并使用空格作为分隔符
{$1=$1 of s“sample”}1
使其适用于任意数量的列,有趣的是,我采纳了您的想法,并对其进行了一些调整,使其有点花哨:{$1=$1 of s(NR==1?“新列”:“sample”)}1
。谢谢你的主意!