sim*_*ind 1 command-line text-processing
我有一系列 txt 文件,每个文件都有许多条目。我通常使用 cat 将所有 txt 文件合并到一个输出文件中,但是它变得有点混乱,因为我无法确定它来自哪个原始 txt 文件。
我想知道是否有办法使用命令行首先按字母顺序合并所有 txt 文件,同时将后缀添加到原始条目以记录它来自的文件。
例如,假设我有 2 个 txt 文件,每个文件包含三个条目:
文件一:
Alpha
Bravo
Charlie
Run Code Online (Sandbox Code Playgroud)
文件_二:
Alpha
Bravo
Delta
Run Code Online (Sandbox Code Playgroud)
我想做的是:
添加后缀以显示它来自哪个列表:
Alpha_File_One
Alpha_File_Two
Bravo_File_One
Bravo_File_Two
Charlie_File_One
Delta_File_Two
Run Code Online (Sandbox Code Playgroud)这可能吗?
正如弗洛里安所说,您应该首先添加文件名,然后进行排序。另一种方法是使用awk:
$ awk '{printf "%s_%s\n", $0, FILENAME}' f1 f2 | sort
Alpha_f1
Alpha_f2
Bravo_f1
Bravo_f2
Charlie_f1
Delta_f2
Run Code Online (Sandbox Code Playgroud)
printf以指定格式打印参数,%s_%s\n这意味着两个字符串_由换行符分隔并后跟换行符。$0并分别FILENAME包含当前行和文件名。在此示例中,我已将文件命名为f1和f2。
| 归档时间: |
|
| 查看次数: |
65 次 |
| 最近记录: |