匹配模式时,将文本文件的一列提取到另一列

时间:2016-02-10 16:46:49

标签: shell unix

我有一个以制表符分隔的文本文件,其中包含4列数据:

StudentId     Student Name        GPA        Major

我必须编写一个shell命令,将CS学生的学生姓名存储到另一个文件中。我使用了grep cs students.txt,它只显示cs的学生,但我不知道如何只取学生的名字并将其保存到文件中。

2 个答案:

答案 0 :(得分:1)

假设您的输入文件是以制表符分隔的(因此您可以在名称中包含空格):

awk -F'\t' '$4 == "cs" { print $2 }' <infile >outfile

这将第4列(主要)与“cs”匹配,并在完全匹配时打印第2列。

答案 1 :(得分:0)

知道了:

grep cs students.txt | cut -f2 >file1