解析文件以获取文本文件中的内容并输出到新文件

时间:2018-02-12 10:35:33

标签: bash

我在目录中有多个文本文件,其中包含以下内容,我想循环遍历它们,以粗体提取项目并将它们输出到文本文件中:

  

...

     

复制文件$ {资源} / aXpKcHLe2f.DAT $ {NEWDIR} /File2.DAT

     

比较文件操作$ {TEMPLATES} / KGuovBrMwK $ {NEWDIR} / DT

     

...

     

复制文件$ {资源} / 9ZzUpgmTy0.DAT $ {NEWDIR} /File2.DAT

     

比较文件操作$ {TEMPLATES} / qpk3BiCvRG $ {NEWDIR} / DT

     

...

我如何在bash脚本中执行此操作?我知道它需要一些正则表达式,但我不知道在哪里或如何开始。

1 个答案:

答案 0 :(得分:2)

您可以使用此find + awk解决方案:

find . -name '*.txt' -exec awk -F '/' 'NF>1{sub(/ .*/, "", $2); print $2}' {} +

这将打印每个/文件中由*.txt分隔的第二列的所需输出。如果您的文件扩展名不同,则可以相应地更改此-name模式。