You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用单行命令提取各模式最早出现的日期型CSV文件名

批量查找字符串首次出现的最早日期CSV文件

单行解决方案

sort -V *.csv | xargs -I {} grep -F -x -o -f input.txt {} | awk -v OFS='\t' '!seen[$0]++ {print $0, FILENAME}'

命令各部分解释

  • sort -V *.csv:按版本号规则对CSV文件排序,确保文件名按日期从早到晚排列(适配YYYY-MM-DD、YYYYMMDD等常见日期命名格式)
  • xargs -I {} grep -F -x -o -f input.txt {}:遍历每个排序后的CSV文件,精准匹配input.txt中的字符串:
    • -f input.txt:读取input.txt中的每行作为匹配模式
    • -F:按固定字符串匹配,避免正则特殊字符干扰
    • -x:要求完全匹配整行字符串(若允许子串匹配可移除该参数)
    • -o:仅输出匹配到的字符串本身
  • awk -v OFS='\t' '!seen[$0]++ {print $0, FILENAME}':去重并保留首次匹配结果:
    • seen[$0]记录每个字符串是否已找到最早出现的文件
    • 仅当字符串第一次出现时,输出字符串和对应的CSV文件名,后续相同字符串直接跳过
    • OFS='\t'设置制表符作为分隔符,方便结果的阅读和后续处理

注意事项

  • 若日期文件名格式无法通过sort -V正确排序,需根据实际格式调整排序参数(例如sort -k1,1 *.csv)
  • 若input.txt中的字符串包含空格,上述命令已适配该场景

内容的提问来源于stack exchange,提问作者Manse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 12:42:38