Tôi đang cố sắp xếp số lượng tệp theo đầu ra bằng lệnh ls khớp với mẫu ABCDE1234A1789.RST.txt
hoặc ABCDE12345A1789.RST.txt
bởi trường '789
'.Sử dụng lệnh sắp xếp bash trong tên tệp có độ dài biến đổi
Trong ví dụ mẫu ở trên, ABCDE
giống nhau cho tất cả các tệp, 1234
hoặc 12345
là các chữ số thay đổi nhưng luôn có 4 hoặc 5 chữ số. A1
có cùng độ dài cho tất cả các tệp, nhưng giá trị có thể khác nhau do đó rất tiếc, không thể sử dụng giá trị đó làm dấu phân cách. Mọi thứ sau .
đầu tiên đều giống nhau cho tất cả các tệp. Một cái gì đó như:
ls -l *.RST.txt | sort -k +9.13 | awk '{print $9} ' > file-list.txt
sẽ phù hợp với tên tập tin ngắn hơn nhưng không phải là những lâu hơn vì độ dài biến của nhân vật trước khi lĩnh vực này tôi muốn sắp xếp theo.
Có cách nào để thực hiện sắp xếp tất cả các tệp mà không đệm các tệp có độ dài ngắn hơn để làm cho chúng có cùng độ dài không?
FYI - lệnh 'sắp xếp' không phải là một phần của bash, mà là tiện ích UNIX chuẩn. Như vậy, nó có sẵn cho bất kỳ chương trình (và bất kỳ trình bao). –