从没有列名的txt文件中获取列的数据

时间:2020-07-11 18:06:03

标签: awk

这是student.txt文件:

RollNo|Name|Marks
123|Raghu|80
342|Maya|45
561|Gita|56
480|Mohan|71

我想从“标记”列中获取数据,并且使用了awk命令

awk -F "|" '{print $3}' student.txt

它的输出类似于

Marks
80
45
56
71

此输出包含列名“ Marks”,但我只想获取数据并像这样显示输出

80
45
56
71

5 个答案:

答案 0 :(得分:3)

如果输入记录数大于1,则在awk脚本中添加条件以打印第三个字段:

awk -F'|' 'FNR>1{print $3}' student.txt

答案 1 :(得分:3)

请尝试以下操作,它没有Marks关键字的硬编码字段号,在标题中它将查找该字符串,并且仅打印Marks下的那些列,因此即使您的Marks列也位于任何字段编号都应该可以正常工作。在https://ideone.com/Ufq5E2链接中编写和测试。

awk '
BEGIN{ FS="|" }
FNR==1{
  for(i=1;i<=NF;i++){
    if($i=="Marks"){ field=i }
  }
  next
}
{
  print $field
}
'  Input_file

答案 2 :(得分:0)

从“标记”列中获取数据--使用[ing] awk

$ awk -F\| '
FNR==1 {
    for(i=1;i<=NF;i++)
        if($i=="Marks")
            next
    exit
}
{
    print $i
}' file
80
45
56
71

答案 3 :(得分:0)

另一个例子:

awk -F'|' 'NR != 1 {print $3}' input_file

答案 4 :(得分:0)

非奥克选择

{{1}}