CentOS教程:根据文件名长度输出


说明蓝色=命令名称

      浅绿=命令参数

      浅蓝=选项

      紫色=目录

      系统环境:CentOS  6.2  i686

内容如下:

要求a:前面数字相同的输出后面字母最长的一个

方法:awk -F. '{a[$1]=$0}END{for(i in a)print a[i]}' test2

解析:以 . 为分隔符,因为排序是以后面字母由短到长排列,a[$1] 最后就等于最长的一个。

要求b:前面数字相同,后面字母最长的一个不输出,其他全输出。

方法:awk -F. '{a[$1]=$0;b[NR]=$0;if(length(b[NR-1])<length(a[$1])&&NR!=1)print b[NR-1]}' test2

解析: if(length(b[NR-1])<length(a[$1])&&NR!=1) 通过字符长度对比输出短的一个,且NR=1时不输出,否则会多数出一个空行。

相关内容