从文件中提取字符串并合并(python)

从文件中提取字符串并合并(python)

我有一个包含多个子文件夹的目录,所有子文件夹都包含多个文本文件,这些文本文件的格式如下。

data01:data02

我需要提取之后的 data02:并将其导出到根目录中的单个文件中。我已完成提取,但如何在多个目录和文件上运行它?

答案1

您可以使用“find”和“awk”自定义以下命令行

find FOLDERLIST -type f -iname "PATTERN" \
     -exec awk -F":" 'NF>1 {print $2}' "{}" \; > /PATH/TO/RESULTFILE

在哪里

  • FOLDERLIST 是您要递归搜索的顶级文件夹的空格分隔列表,其中“当前文件夹”将是一个点: find 。 - 类型 f ...
  • “-type f”仅用于搜索文件
  • PATTERN 是您感兴趣的文件的常见模式,例如星号“*”将查找所有文件,“*.csv”将查找 CSV 文件,...
  • /PATH/TO/RESULTFILE 是根目录中结果文件的名称
  • “awk”部分在“:”处分割所有找到的文件并跳过空结果

编辑:按照 Steeldriver 的建议,将空结果检查调整为 NF>1。

答案2

您尚未提供输出文件的格式,因此我假设您希望第二个字段位于单独的行中。您可以使用(假设所有文件的格式a:b如您在问题中所述):

find directory -type f \
-exec awk -F: '{print $2}' "{}" >> /output.txt \;

它将在directory其子目录中查找文件,并执行 command awk -F: '{print $2}' "{}" >> /output.txt,该命令会将 后的值写入:file /output.txt

相关内容