linux - 如何在 linux 中将多个文件合并到一个目录中,以便每个文件数据都放在一个新列中?

标签 linux terminal

我在一个目录中有 100 个文件,每个文件包含一列 1000 行数字。我想将所有这些文件组合成一个文件,从而产生 1000 x 100 数据框,每个列的名称都是文件名。有没有办法在 linux(终端)中执行此操作?

最佳答案

这可以用小的 perl 脚本来完成:

合并.pl

#!/usr/bin/perl

my @lines;
for my $file (@ARGV) {
    open(FI,$file) or die;
    my $i=0;
    while(<FI>) {
        chop;
        $lines[$i].="," if $lines[$i];
        $lines[$i].=$_;
        $i++;
    }
    close(FI);
}

for my $line (@lines) {
    print $line."\n";
}

使用您需要合并的所有文件名运行它:

./merge.pl dir/*

关于linux - 如何在 linux 中将多个文件合并到一个目录中,以便每个文件数据都放在一个新列中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44420126/

相关文章:

linux - 如何抑制 tar 归档文件中的目录名称?

linux - shell 脚本 (AIX) : Extracting OS and browser information from user agent string

xcode - Mac-用于在Xcode,Terminal,Safari,Firefox中的选项卡之间循环的键盘快捷方式

linux - 如何拆分文件并保留每个部分的第一行?

linux - Shell执行器是如何运行脚本的?

macos - 终端启动错误: object 0x7fe089600420: pointer being freed was not allocated

linux - Unix 命令 rmdir 什么时候适合使用?

github - 调用gitk后如何继续使用GitBash?

terminal - 如何找到终端窗口的宽度和高度?

linux - 为什么 cp 无法复制/proc/stat 文件?