LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
123
返回列表 发新帖
楼主: sdjw

如何在文本中间插入一行?--[已解决]

[复制链接]
发表于 2004-3-13 00:22:21 | 显示全部楼层
  1. #!/bin/ksh
  2. sed "/${2}/a\\
  3. ${3}" $1
复制代码
测试:
cat ~/file
aaa
bbb
ccc
ddd
fff

/home/javalee/myshell:insert ~/file aaa AAA
aaa
AAA
bbb
ccc
ddd
fff
 楼主| 发表于 2004-3-13 00:38:40 | 显示全部楼层
谢谢
javalee
★☆族★长☆★
这么晚了还在为人民服务,辛苦辛苦啊.....


卧试试先 .谢谢你
 楼主| 发表于 2004-3-13 00:47:38 | 显示全部楼层
经测试还是不成功!!!
步骤如下:
vi insert(内容如下)
#!/bin/ksh
sed "/${2}/a\\
${3}" $1

保存后推出
chomd 777 insert

vi a.txt(内容如下)
aaa
bbb
ccc
ddd
fff
保存后退出

./insert a.txt aaa AAA(回车)
提示:
bash: ./insert: /bin/ksh: bad interpreter: No such file or directory

请问我哪里搞错了?谢谢
发表于 2004-3-13 00:50:36 | 显示全部楼层
把第一行的#!/bin/ksh改成#!/bin/bash
然后
bash insert filename aaa AA
 楼主| 发表于 2004-3-13 00:55:17 | 显示全部楼层
成功了!!谢谢班主的热情帮助//bow
发表于 2004-3-13 01:12:05 | 显示全部楼层
最初由 sdjw 发表
成功了!!谢谢班主的热情帮助//bow

祝贺你!
建议你多看看置顶中shell入门的基础教程和精华区的文章.
 楼主| 发表于 2004-3-13 01:16:41 | 显示全部楼层
嗯.我都保存下来了,特别是测试题,很有意思.

我根据班主的程序,改了一下
#!/bin/bash
sed "/${2}/a\\
${3}" $1 >tmp.txt;cp tmp.txt test.txt;rm tmp.txt

这样直接 bash insert test.txt aaa AA 就可以插入了
(test.txt 文件名是固定的)

您看我写的可以吗?
发表于 2004-3-13 01:23:04 | 显示全部楼层
常用格式
  1. >tmp$$;rm test.txt;mv tmp$$ test.txt
复制代码
 楼主| 发表于 2004-3-13 01:26:38 | 显示全部楼层
谢谢谢谢.我今天学到了很多.第一次接触shell 啊.

听班主一席话,省我十本书啊.呵呵.

早点休息.晚安~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表