用awk

时间:2019-06-25 03:42:20

标签: awk

我有一个如下所示的表,这里我只想从第二行开始打印第一列中的所有Emp_Name

Emp_Name    Position        Experience
Cara        Senior          12
Doc         Junior          6
Quinn       Lead            14
Cedric      Manager         18
Collen      Junior          8

我知道awk '{print $1}'将打印表中的第一列,但是如何跳过第一行或字段,即Emp_Name并将第二行中的所有名称打印到最后一个字段?在这里,最后一个字段或行号可以是任何数字(未知)。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

不过,如果您只想跳过第一行然后尝试跟随,则还不太清楚。

awk 'FNR>1' Input_file

或打印第一列使用:

awk 'FNR>1{print $1}'  Input_file


如果您不知道Emp_No将出现在哪个字段上,并且希望从第一行中查找其列号,并且不想从该行的其余部分中打印同一列,请尝试以下操作。 / p>

awk '
BEGIN{
  OFS="\t"
}
FNR==1{
  for(i=1;i<=NF;i++){
     if($i=="Emp_Name"){
       val=i
       next
     }
  }
}
{
  for(i=1;i<=NF;i++){
     if(i==val){
       continue
     }
     else{
       value=(value?value OFS:"")$i
     }
  }
  print value
  value=""
}
'   Input_file