このリストを会社名に基づいてアルファベット順にソートしたいと思います。

このリストを会社名に基づいてアルファベット順にソートしたいと思います。

test.txtだから、次の行を含むファイルがあります。

 1.The Home Depot (Ranked 28): home improvement; Atlanta, GA.
 2.United Parcel Service (Ranked 48): shipping; Atlanta, GA.
 3.The Coca-Cola Company (Ranked 62): soft drinks; Atlanta, GA. 
 4.Delta Air Lines, Inc. (Ranked 68): airline; Atlanta, GA.
 5.Aflac, Incorporated (Ranked 135): insurance; Columbus, GA. 
 6.The Southern Company (Ranked 162): energy; Atlanta, GA.
 7.Genuine Parts Company (Ranked 183): replacement parts; Atlanta, GA. 
 8.First Data Corporation (Ranked 249): payment processing;Atlanta,GA. 
 9.WestRock (Ranked 251): corrugated and consumer Norcross, GA
10.HD Supply Holdings, Inc. (Ranked 320): industrial , Atlanta GA  
11.Suntrust Banks, Inc. (Ranked 329): banking; Atlanta, GA.
12.Mohawk Industries, Inc. (Ranked 338): flooring manufacturer; Calhoun, GA.

私が使用したコマンドは、sed 's/[0-9]*[.]//' test.txt | awk -F"(" '{print NF,$1}' | sort会社名のみをアルファベット順に提供します。

Aflac, Incorporated
Delta Air Lines
Genuine Parts Company 
First Data Corporation
HD Supply Holdings
Mohawk Industries
Suntrust Banks
The Coca-Cola Company
The Home Depot
The Southern Company

しかし、会社名だけでなく行全体も表示したいと思います。

答え1

(Take 2) ファイルの内容が次のとおりです。

  1.The Home Depot (Ranked 28): home improvement; Atlanta, GA.
  2.United Parcel Service (Ranked 48): shipping; Atlanta, GA.
  3.The Coca-Cola Company (Ranked 62): soft drinks; Atlanta, GA. 
  4.Delta Air Lines, Inc. (Ranked 68): airline; Atlanta, GA.

ソートしたいデータはドットの後に表示されるため、ドットを区切り記号として明示的に設定してから、2番目のフィールドを-t .ソートできます。

$ sort -t. -k2 test.txt
  4.Delta Air Lines, Inc. (Ranked 68): airline; Atlanta, GA.
  3.The Coca-Cola Company (Ranked 62): soft drinks; Atlanta, GA. 
  1.The Home Depot (Ranked 28): home improvement; Atlanta, GA.
  2.United Parcel Service (Ranked 48): shipping; Atlanta, GA.

(質問には先行スペースが表示されています。ここにコピーしましたが、実際に存在するかどうかはソートには重要ではありません。)

関連情報