shell编程,把a文件的每一行追加到b文件对应行数的行尾

比如a.log:
1
2
3

b.log:
a
b
c

现在想追加后成为c.log:
a1
b2
c3

下面是我写的,不知道哪里错了,求指教,或者有更好的办法也行,shell渣先谢过了
#!/bin/bash
line=`sed -n '$=' sqlli.txt`
#echo $line
for((n=1;n<$line;n++))
do
value=`head -$n sqlli.txt`
sed -i "$ns/$/$value/" jsp.logg > test
done

#!/bin/bash
line=`sed -n '$=' sqlli.txt`
#echo $line
for((n=1;n<=$line;n++))
do
value=`sed -n ${n}p sqlli.txt`
#sed -n "${n}s/$/$value/p" jsp.logg >> test   #如果不想改jsp文件内容,把结果放Test中,使用追加>>是避免每次被清空,运行后只有最后一行值
sed -i "${n}s/$/$value/" jsp.logg       #如果直接改文件内容,不用重定向
done

错误:1.循环条件错误。1~3行,实际只能运行1~2行

2.变量的使用,如$ns,程序会以为ns是一个新的变量。

3.Head -n,会返回前几行,不是第几行

4. sed -i   不管处理成功与否,屏幕没有显示内容,把命令重定向到文件,得不到结果

5.在循环中重定向文件>,会导致每次先清空文件,即使有数值,也只有最后一个循环时的值

温馨提示:答案为网友推荐,仅供参考