【发布时间】:2014-01-27 09:23:18
【问题描述】:
我正在使用一个程序,它以以下格式输出 很多 个输出文件:
run_1_0001.blah
run_1_0002.blah
run_2_0001.blah
run_3_param_2_0001.blah
run_3_param_2_0002.blah
每次运行都会将数千个这样的文件放到同一个目录中。文件名的头部是任意的,可能包含数字。唯一一致可预测的部分是文件名以 4 位数字和扩展名结尾。我想要写一个别名,排除这些伪重复,并为每个文件集合生成一行输出。在我给出的垃圾示例中,输出将是:
run_1_.blah
run_2_.blah
run_3_param_2_.blah
抱歉,如果这很容易。我确实环顾四周,但找不到任何东西。
【问题讨论】:
-
看你的例子很难说。如果您有源线,请提供。
-
我找到了将 ls 与 sed 和 uniq 相结合的部分解决方案。如果扩展名是'.blah',可以这样做: ls *.blah | sed 's|[0-9]*\.blah|.blah|' | uniq ls 查找所有 blah 文件,sed 删除尾随文件编号,uniq 排除任何生成的重复文件。但是,这不适用于 ls -la,因此无法显示任何文件信息。如果有人有更好的方法,我很想听听!