在Unix中根据文件名的唯一部分列出文件

时间:2015-10-16 10:58:19

标签: unix uniq

我的目录中包含以下文件 -

111-xxx-typec_2015-10-13.csv.gz
111-xxx-typec_2015-10-14.csv.gz
222-yyy-typec_2015-10-13.csv.gz
222-yyy-typec_2015-10-14.csv.gz
333-zzz-typec_2015-10-13.csv.gz
333-zzz-typec_2015-10-14.csv.gz
444-ppp-typec_2015-10-13.csv.gz
444-ppp-typec_2015-10-14.csv.gz
444-ppp-typec_2015-10-15.csv.gz

我想查看每种类型的最旧文件(xxx,yyy等),即输出应该是,

111-xxx-typec_2015-10-13.csv.gz
222-yyy-typec_2015-10-13.csv.gz
333-zzz-typec_2015-10-13.csv.gz
444-ppp-typec_2015-10-13.csv.gz

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:1)

你可以做的是做一个' ls,通过一个' AWK'您匹配'类型'的脚本,并根据字典进行检查。如果它在列表中,请忽略,否则打印并添加到列表中。

像这样的nawk脚本:

{
   match($0, /(.*)-typec/, m);
   if (matches[m[1]] == "")
   {
      print ;
      matches[m[1]] = m[1];
   }
}