在 Unix 中根据文件名的唯一部分列出文件
To list files based on unique part of the filename in Unix
我有一个包含以下文件的目录 -
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
有办法吗?
您可以做的是执行 'ls',通过管道将其通过与 'type' 匹配的 'AWK' 脚本,然后对照字典进行检查。如果在列表中,则忽略,否则打印并添加到列表中。
像这样的 nawk 脚本:
{
match([=10=], /(.*)-typec/, m);
if (matches[m[1]] == "")
{
print ;
matches[m[1]] = m[1];
}
}
我有一个包含以下文件的目录 -
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
有办法吗?
您可以做的是执行 'ls',通过管道将其通过与 'type' 匹配的 'AWK' 脚本,然后对照字典进行检查。如果在列表中,则忽略,否则打印并添加到列表中。
像这样的 nawk 脚本:
{
match([=10=], /(.*)-typec/, m);
if (matches[m[1]] == "")
{
print ;
matches[m[1]] = m[1];
}
}