场景:
文件A内容如下:
a
b
c
d
e
文件B内容如下:
1
2
3
4
5
需要生成文件如下:
a-1
b-2
c-3
d-4
e-5
首先创建文件ab,内容为要合并的文件名,如下:
A
B
第一种方法麻烦,代码如下:
LE=$(sed -n '$=' ./ab) //获取ab的行数
for((j=1;j<2;j++)); //此处for循环用于合并多个文件,单数是源文件名,双数是目标文件名
do
SRC=$(sed -n "${j}p" ./ab) //获取指定行的内容
TGT=$(sed -n "$[$j+1]p" ./ab)
LEN=$(sed -n '$=' ./${SRC})
for((i=1;i<$LEN+1;i++));
do
VAL=$(sed -n "${i}p" ./${SRC})
VAL1=$(sed -n "${i}p" ./${TGT})
echo $VAL"-"$VAL1 >> ./out/${SRC};
done
done
第二种方法简单:(假设两个文件在一个文件夹中,注意两个文件的行数要一致)
paste -d'-' * >> myfile
PS:>>表示以追加的形式写文件