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

如何使用Linux命令行提取包含匹配指定模式文件的目录路径

提取匹配后缀文件所在目录的命令实现

你已经通过grep "\.txt" foo筛选出了所有后缀为.txt的文件路径,后续可以拼接以下命令实现需求,两种常用方案如下:

方案1:sed 直接处理(无需调用额外命令)

完整命令

grep "\.txt" foo | sed 's/\/[^/]*$/\//' | sort -u

逻辑说明

  • sed 's/\/[^/]*$/\//':用正则匹配路径末尾最后一个/之后的所有字符(即.txt文件名部分),将其替换为/,直接得到文件所在目录路径
  • sort -u:对输出的目录去重,避免同一目录下存在多个txt文件时重复输出

方案2:结合dirname命令(可读性更高)

完整命令

grep "\.txt" foo | xargs -n1 dirname | sed 's@$@/@' | sort -u

逻辑说明

  • xargs -n1 dirname:将每行筛选出的文件路径单独传给dirname命令,直接输出文件所属的目录
  • sed 's@$@/@':给输出的目录路径末尾补全/,匹配你需要的输出格式
  • sort -u:对目录结果去重

验证结果

两种方案运行后,针对你的示例输入都会输出符合预期的结果:

/a/b/c/
/a/b/c/d/
/a/b/

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:15:04