我在目录中有多个文本文件,其中包含以下内容,我想循环遍历它们,以粗体提取项目并将它们输出到文本文件中:
...
复制文件$ {资源} / aXpKcHLe2f.DAT $ {NEWDIR} /File2.DAT
比较文件操作$ {TEMPLATES} / KGuovBrMwK $ {NEWDIR} / DT
...
复制文件$ {资源} / 9ZzUpgmTy0.DAT $ {NEWDIR} /File2.DAT
比较文件操作$ {TEMPLATES} / qpk3BiCvRG $ {NEWDIR} / DT
...
我如何在bash脚本中执行此操作?我知道它需要一些正则表达式,但我不知道在哪里或如何开始。
答案 0 :(得分:2)
您可以使用此find + awk
解决方案:
find . -name '*.txt' -exec awk -F '/' 'NF>1{sub(/ .*/, "", $2); print $2}' {} +
这将打印每个/
文件中由*.txt
分隔的第二列的所需输出。如果您的文件扩展名不同,则可以相应地更改此-name
模式。