一行 shell 命令查找 LEC05 中的所有学生并按排序顺序打印他们的名字

一行 shell 命令查找 LEC05 中的所有学生并按排序顺序打印他们的名字

例如,假设我们有一个名为的文件,input.txt其中包含

100 John Doe LEC05 12356

132 Carol Bon LEC05 156

122 Cavar Liktik LEC01 136

...

该命令应该找到每个人并在名为的文件中LEC05按顺序打印出他们的名字sortedoutput.txt

该命令应该是一行命令(带有管道)。

我不确定它会如何完成。

see if LEC05 | find first name at index 1 | sort < input.txt > output.txt

我该如何做这个see if LEC05 | find first name at index 1部分?

答案1

awk

awk '$4 == "LEC05" { print $2 }' /path/to/inputfile | sort > outputfile

grepcut

grep 'LEC05' /path/to/inputfile | cut -f2 | sort > outputfile

答案2

更多的困惑

     awk '/LEC05/{ name[$2]++ } END { n = asorti( name,sname ); for ( i in sname ) print sname[i]}' input.txt

相关内容