Отображение диапазона строк из первого столбца с помощью awk - PullRequest
0 голосов
/ 25 июня 2019

У меня есть таблица, показанная ниже, здесь я просто хочу напечатать все 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 голосов
/ 25 июня 2019

Не совсем ясно, хотя, если вы хотите пропустить только первую строку, попробуйте следующий.

awk 'FNR>1' Input_file

ИЛИ для печати 1-го столбца используйте:

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


Если вы не знаете, в какое поле Emp_No придет и хотите найти номер его столбца из 1-й строки, И НЕ хотите печатать этот же столбец из остальной части строки, попробуйте выполнить следующее.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...