shell - 如何通过计算前缀的使用次数来删除文件?
问题描述
假设我有一个文件夹,例如:
Name1_1542.csv
Name1_1543.csv
Name1_1544.csv
...
Name2_1543.csv
Name2_1544.csv
Name2_1545.csv
...
Name3_1490.csv
Name3_1491.csv
Name3_1492.csv
...
Namex
每批文件的第一部分都不同。我想计算每个Namex
前缀在文件夹上重复的次数,并删除所有以结果小于 10 的前缀开头的文件。
解决方案
perl 单行:
perl -e 'for (<Name*.csv>) { my @F = split /_/; push @{$files{$F[0]}}, $_ }
for (values %files) { unlink @$_ if @$_ < 10 }'
推荐阅读
- wordpress - 使 WooCommerce 缩略图图像大于主要产品图像
- python-3.x - 需要帮助解决 python 中的 selenium webdriver
- monads - 无法声明 MonadPlus 接口受 Monad 约束
- php - 使用标签的可见文本替换 qualifying 的 href 值
- c++ - 如何安全地重载 std::unique_ptr 的自定义删除器?
- javascript - 输入框包含某些值时的浮动标签
- javascript - 使用 throw 错误时,passport.authenticate() 中出现未处理的承诺拒绝错误
- join - 为什么在 pyspark 中加入两个临时视图后删除列不起作用,但它适用于数据框连接?
- python - 插入排序算法:哪些代码在其结构上是高效的,怎么来的?
- python - Python:将输出行中的第二个值分配给变量