假如一个目录下有如下文件
ls -l
aaa20130301_000.txt
aaa20130301_111.txt
aaa20130301_222.txt
aaa20130302_000.txt
aaa20130302_111.txt
aaa20130302_222.txt
bbb20130301_000.txt
bbb20130301_111.txt
bbb20130301_222.txt
bbb20130302_000.txt
bbb20130302_111.txt
bbb20130302_222.txt
我想把这个目录下的文件前11位列出来,结果为:
aaa20130301
aaa20130302
bbb20130301
bbb20130302
解决办法如下:
[root@centos /var/tmp]# ls -l | awk '{print $8}' | cut -d_ -f1
20130310
20130310
20130311
20130312
[root@centos /var/tmp]# ls -l | awk '{print $8}' | cut -d_ -f1 | sort |uniq
20130310
20130311
20130312
说明:1)“|”是管道连接符(或命令连接符),用于连接命令的
2)awk用于输出某个字段
3)cut用于截取 -d:表示目录 -f1:表示目录中的文件名
4)sort:用于排序结果
5)uniq:用于排重。