我有一系列 txt 文件,每个文件都有很多条目。我通常使用 cat 将所有 txt 文件合并到一个输出文件中,但是它变得有点混乱,因为我无法确定它来自哪个原始 txt 文件。
我想知道是否有一种方法,使用命令行,首先按字母顺序合并所有 txt 文件,同时将后缀添加到原始条目以注明它来自的文件。
例如,假设我有 2 个 txt 文件,每个文件包含三个条目:
文件一:
Alpha
Bravo
Charlie
文件二:
Alpha
Bravo
Delta
我想做的是:
- 将两个列表合并到一个按字母顺序排序的输出 txt 文件中;
添加后缀以显示它来自哪个列表:
Alpha_File_One Alpha_File_Two Bravo_File_One Bravo_File_Two Charlie_File_One Delta_File_Two
这可能吗?
正如 Florian 所说,您应该先添加文件名,然后再排序。另一种方法是使用
awk
:printf
以指定格式打印参数,%s_%s\n
这意味着两个字符串由换行符分隔_
并后跟换行符。$0
并FILENAME
分别包含当前行和文件名。在此示例中,f1
我将文件命名为, 。f2
你需要反其道而行之:首先添加后缀,den merge and sort: