首页 > 解决方案 > 如何组合文件的内容并将文件名附加到输出文件中?

问题描述

我有很多简单的 txt 文件。他们每个人只有一个字符串,例如

数据_1

数据_2

数据_3

数据_4

每个文件都有唯一的名称,例如

名称_01_apr_29

名称_02_apr_29

名称_03_apr_29

如何结合文件内容和文件名?

我需要:

数据_1;名称_01_apr_29

数据_2;名称_02_apr_29

数据_3;名称_03_apr_29

等等

我需要在某些 linux 命令或 bash(某些 script.sh)中执行此操作,因为我需要在 cron 中定期启动此请求。

我正在开发debin 8。

标签: bashcatdebian-jessie

解决方案


awk解决方案很简单:

awk '{print $0 ";" FILENAME}' Name_*_apr_29

另一种方法是使用grep. 您需要重新排列输出:

grep . Name_*_apr_29 | cut -d: -f2,1 | tr ':'  ';'

或者

grep . Name_*_apr_29 | sed -r 's/([^:]*):(.*)/\2;\1/'

推荐阅读