shell脚本在for循环里用sed修改文件内容的问题

冰室辰也hl 发布于 2018/08/16 13:36
阅读 1K+
收藏 0

用来修改的文件是ddd,文件内容如下:

000000000000 
111111111111
222222222222
333333333333
444444444444
555555555555
666666666666
777777777777
888888888888
999999999999

脚本文件为opt_ddd,内容如下:

#!/bin/bash
for (( i=0;i<10;i++ ))
do
	m=$[$i+1]
	sed -i "/$i/aasdfasdfasdfasdf$m" ddd
done


期望输出如下:


000000000000 
asdfasdfasdfasdf1 
111111111111
asdfasdfasdfasdf2
222222222222
asdfasdfasdfasdf3
333333333333
asdfasdfasdfasdf4
444444444444
asdfasdfasdfasdf5
555555555555
asdfasdfasdfasdf6
666666666666
asdfasdfasdfasdf7
777777777777
asdfasdfasdfasdf8
888888888888
asdfasdfasdfasdf9
999999999999
asdfasdfasdfasdf10

实际输出如下:

00000000000
asdfasdfasdfasdf1
asdfasdfasdfasdf2
asdfasdfasdfasdf3
asdfasdfasdfasdf4
asdfasdfasdfasdf5
asdfasdfasdfasdf6
asdfasdfasdfasdf7
asdfasdfasdfasdf8
asdfasdfasdfasdf9
asdfasdfasdfasdf10
111111111111
asdfasdfasdfasdf2
asdfasdfasdfasdf3
asdfasdfasdfasdf4
asdfasdfasdfasdf5
asdfasdfasdfasdf6
asdfasdfasdfasdf7
asdfasdfasdfasdf8
asdfasdfasdfasdf9
asdfasdfasdfasdf10
222222222222
asdfasdfasdfasdf3
asdfasdfasdfasdf4
asdfasdfasdfasdf5
asdfasdfasdfasdf6
asdfasdfasdfasdf7
asdfasdfasdfasdf8
asdfasdfasdfasdf9
asdfasdfasdfasdf10
333333333333
asdfasdfasdfasdf4
asdfasdfasdfasdf5
asdfasdfasdfasdf6
asdfasdfasdfasdf7
asdfasdfasdfasdf8
asdfasdfasdfasdf9
asdfasdfasdfasdf10
444444444444
asdfasdfasdfasdf5
asdfasdfasdfasdf6
asdfasdfasdfasdf7
asdfasdfasdfasdf8
asdfasdfasdfasdf9
asdfasdfasdfasdf10
555555555555
asdfasdfasdfasdf6
asdfasdfasdfasdf7
asdfasdfasdfasdf8
asdfasdfasdfasdf9
asdfasdfasdfasdf10
666666666666
asdfasdfasdfasdf7
asdfasdfasdfasdf8
asdfasdfasdfasdf9
asdfasdfasdfasdf10
777777777777
asdfasdfasdfasdf8
asdfasdfasdfasdf9
asdfasdfasdfasdf10
888888888888
asdfasdfasdfasdf9
asdfasdfasdfasdf10
999999999999
asdfasdfasdfasdf10

懵逼中......求助

加载中
0
当朝宰相
当朝宰相

你这个最好用数组来实现, 你出现的问题 是因为 每一次循环都会对文件进行一次遍历, 而不是文件中一行。

冰室辰也hl
好的,谢谢!但是是把什么转化成数组呢?m和i?还是文件的每一行?还是其他?
返回顶部
顶部