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

比如a.log:123b.log:abc现在想追加后成为c.log:a1b2c3下面是我写的,不知道哪里错了,求指教,或者有更好的办法也行,shell渣先谢过了#!/bi... 比如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
展开
 我来答
cnbubble
推荐于2017-06-30 · TA获得超过2607个赞
知道大有可为答主
回答量:1990
采纳率:83%
帮助的人:770万
展开全部
#!/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.在循环中重定向文件>,会导致每次先清空文件,即使有数值,也只有最后一个循环时的值

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式