根据第二列逐渐排序多个文件

时间:2015-09-28 01:57:11

标签: shell sorting

我需要根据第二列(不是字符串的数字)对名称以.txt结尾的所有文件进行排序。所有文件都有两个整数列,我需要排序才能对相同的文件生效。

例如,假设file1.txt包含

1            33
2            55
3            22

和file2.txt包含

10            133
2             551
30            2200

我需要一个shell命令来处理两个* .txt文件(实际上我有100个文件)并影响它们如下:

file1.txt变为:

2            55
1            33
3            22

file2.txt变为:

30            2200
2             551
10            133

1 个答案:

答案 0 :(得分:0)

如评论中所述:

for file in *.txt; do sort -k2nr -o "$file" "$file"; done

-k2nr以反向数字顺序对字段2进行排序。 -o选项后面跟着一个输入文件名(这里是唯一的输入文件名)安全地用排序的输出覆盖文件。