我有几个这样的文件
BR1.txt
NH1.csv
BR2.txt
NH2.csv
BR3.txt
NH3.csv
我想将每个连接BR
到NH
一个文件中。
答案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
,假设两组文件数量相等并遵循相同的编号系统(以便以正确的方式排序)。