我有 txt 文件,所有这些文件都在同一个目录中。每个都有 2 列数据。它们看起来像这样:
Label1 DataA1
Label2 DataA2
Label3 DataA3
我想使用 join 来制作一个像这样的大文件。
Label1 DataA1 DataB1 DataC1
Label2 DataA2 DataB2 DataC2
Label3 DataA3 DataB3 DataC3
目前,我有
join fileA fileB | join - fileC
但是,我的文件太多,无法列出所有文件 - 有没有办法为此类命令编写循环?
最佳答案
使用 bash,您可以创建一个脚本,为连接执行递归管道执行:
#!/bin/bash
if [[ $# -ge 2 ]]; then
function __r {
if [[ $# -gt 1 ]]; then
exec join - "$1" | __r "${@:2}"
else
exec join - "$1"
fi
}
__r "${@:2}" < "$1"
fi
并将文件作为参数传递给脚本,例如:
bash script.sh file*
或者像这样的排序形式:
find -type f -maxdepth 1 -name 'file*' -print0 | sort -z | xargs -0 bash script.sh
关于linux - 如何将多个txt文件加入到基于列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18152187/