用 awk 连接每两个文件

用 awk 连接每两个文件

我有几个这样的文件

BR1.txt
NH1.csv
BR2.txt
NH2.csv
BR3.txt
NH3.csv

我想将每个连接BRNH一个文件中。

答案1

这可能就是您想要做的:

for br in BR*.txt; do
    num="${br#BR}"
    num="${num%.*}"
    nh="NH${num}.csv"
    cat "$br" "$nh" > "out${num}.txt"
done

但没有样本输入/输出,这是一个猜测。

答案2

set -- BR*.txt
count=0

for name in NH*.csv; do
        count=$(( count + 1 ))
        cat "$1" "$name" >"file$count"
        shift
done

首先将位置参数列表设置为文件BR,然后迭代NH文件。对于NH中的每个文件名$name,它将下一个BR文件与其连接起来,并将结果写入一个名为 的文件,file后跟一些数字。通过使用shift,它成为下一次迭代的$1下一个文件。BR

BR这有效地将每个文件与其对应的文件配对NH,假设两组文件数量相等并遵循相同的编号系统(以便以正确的方式排序)。

相关内容