5

次のデータを含むファイルがあります。

adam
humanities

castiel
sciences

antwon
sciences

dmitri
informatics

zoe
mathematics

bernard
economics

出力が次のようになるように、ファイルを人々の名前でソートできるようにしたい:

adam
humanities

antwon
sciences

bernard
economics

castiel
sciences

dmitri
informatics

zoe
mathematics

cat filename | sort被験者を含むすべてのデータを並べ替えます。人の名前で並べ替えるにはどうすればよいですか?

4

5 に答える 5

6

awkでasortiを使用してデータの配列をソートする

awk '{a[$1]=$2} END {n=asorti(a,c);for (i=1;i<=n;i++) print c[i] "\n" a[c[i]] "\n"}' RS= file
adam
humanities

antwon
sciences

bernard
economics

castiel
sciences

dmitri
informatics

zoe
mathematics

awkにasortiがない場合は、これを試してください。

awk '{print $1,$2}' RS="" file | sort | awk '{print $1 "\n" $2 "\n"}'
于 2013-08-22T08:08:40.633 に答える
1

これはうまくいくかもしれません(GNU sed):

sed '/./!d;$!N;s/\n/ /' file | sort | sed 's/ /\n/g;$!G'

空行を削除します。パターン空間に 2 行を読み込みます。改行をスペースに置き換えます。ファイルをソートします。改行を置き換え、空白行を追加します。

于 2013-08-22T08:00:03.047 に答える