我需要根据第二列(这是一个数字而不是字符串)对所有名称以.txt结尾的文件进行排序。所有文件都有两个整数列,我需要排序在相同的文件上生效。
例如,假设file1.txt包含
1 33
2 55
3 22
和file2.txt包含
10 133
2 551
30 2200
我需要一个shell命令来处理*.txt文件(实际上我有100个这样的文件),并按如下方式影响它们:
中就变成:
2 55
1 33
3 22
file2.txt就变成:
30 2200
2 551
10 133
如注释所述:
for file in *.txt; do sort -k2nr -o "$file" "$file"; done
-k2nr
在字段2上按反向数字顺序排序。-o
选项后面跟着一个输入文件名(这里是唯一的输入文件名),用排序后的输出安全地覆盖文件。