Unix - 按文件名的一部分查找和排序

时间:2018-03-09 10:53:35

标签: sorting unix terminal find

我有这个:

D-T4-0.txt 
A-2.txt 
C-3-1.txt 
B-X1-3.txt 
E-2-4.txt

我希望订购如下:

D, C, A, B, E

我需要查看每个中的最后一个数字(在.txt之前)D-0, C-1, A-2, B-3, E-4

可能吗?

2 个答案:

答案 0 :(得分:1)

for i in `awk -F- '{print $NF}' file_name |sort`;do grep -- -$i file_name;done
  • 这里我使用awk分隔的最后一个字段 - 和排序
  • 并通过添加 - 在前面使用循环来对排序的行进行grep。

答案 1 :(得分:0)

您可以在以下管道中执行此操作:

# List files
ls |

# Include the sorting key in the front as well
sed -E 's/^(.*)([0-9]+)\.txt$/\2\t\1\2.txt/' |

# Sort on the sorting key
sort -n |

# Remove the sorting key
cut -f2-

# Grab the first letter
cut -c1

输出:

D                                                                                                           
C
A
B
E