Bash

一行 shell 命令,查找 LEC05 中的所有學生並按排序順序列印他們的名字

  • June 14, 2017

例如,假設我們有一個名為的文件input.txt,其中包含

100 John Doe LEC05 12356

132 Carol Bon LEC05 156

122 Cavar Liktik LEC01 136

...

這個命令應該找到每個人,並在一個名為的文件中按順序LEC05列印出他們的名字sorted``output.txt

該命令應該是一個單行命令(帶有管道)。

我不確定它會怎麼做。

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

我該怎麼做see if LEC05 | find first name at index 1

awk

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

grepcut:_

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

更加清醒

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

引用自:https://unix.stackexchange.com/questions/371119