Chinaunix
标题:
shell如何对文件按数字文件名排序?
[打印本页]
作者:
linfengfeiye
时间:
2012-06-29 07:19
标题:
shell如何对文件按数字文件名排序?
我有一系列文件在文件夹 /test目录下
file1_sc.txt
file2_cd.txt
file5_ss.txt
file8_ab.txt
file15_cc.txt
现在我需要循环处理这些文件,但是需要按照file字串后的数字进行顺序处理,该如何写这个循环?
大概如下,echo表示处理该文件
for file in `ls /test`
do
echo $file
done
作者:
yinyuemi
时间:
2012-06-29 07:37
回复
1#
linfengfeiye
echo 'file10_sc.txt
file2_cd.txt
file5_ss.txt
file8_ab.txt
file15_cc.txt' |sort -t "_" -k1.5n
file2_cd.txt
file5_ss.txt
file8_ab.txt
file10_sc.txt
file15_cc.txt
复制代码
作者:
linfengfeiye
时间:
2012-06-29 07:51
回复
2#
yinyuemi
管用,谢谢你,请前辈多多指教。
发现sort和awk挺强大。
作者:
rdcwayx
时间:
2012-06-29 08:21
sort 第一列的话, -t "_" 是多余的。
ls file*.txt |sort -k1.5n
复制代码
作者:
linfengfeiye
时间:
2012-06-29 09:08
回复
2#
yinyuemi
发现不管用了,当数字超过一位时不行。
作者:
yinyuemi
时间:
2012-06-29 10:08
回复
5#
linfengfeiye
没明白什么情况?
作者:
惟吾无为
时间:
2012-06-30 21:36
ls -v 按版本号排序
作者:
linfengfeiye
时间:
2012-07-01 01:53
回复
6#
yinyuemi
是我弄错了,是可以的。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2