所以我有一个名为的文件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.
Run Code Online (Sandbox Code Playgroud)
我使用的命令是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
Run Code Online (Sandbox Code Playgroud)
但是,我希望也显示整行,而不仅仅是公司名称。
(取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.
Run Code Online (Sandbox Code Playgroud)
由于您要排序的数据出现在一个点之后,您可以明确地将点设置为分隔符,-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.
Run Code Online (Sandbox Code Playgroud)
(问题中显示了一些前导空格。我只是在这里准确地复制了它,但它是否真的存在与排序无关。)
归档时间: |
|
查看次数: |
514 次 |
最近记录: |