请问用脚本shell怎么修改文件中的内容?

cr4315 2010-11-05 10:07:54
在目录下面有一个log文件/home/log,其中log的内容是:
#This is a lg
# record
# wwwww
# wwww
# wwwww

dritory is /home/log

exit 0
以上是log的内容,现在打算要在最后一个#的下一行添加内容hello,请问用脚本怎么实现?谢谢!如果用cat 的话会直接将整个文件内容给替换掉,但是我只是要往里面添加内容。
...全文
2949 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
freetstar 2010-11-05
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 justkk 的回复:]

line=`sed -n '/^#/=' /home/log|tail -1`
sed -i "${line}a\hello" /home/log
[/Quote]
牛。
sed
justkk 2010-11-05
  • 打赏
  • 举报
回复
line=`sed -n '/^#/=' /home/log|tail -1`
sed -i "${line}a\hello" /home/log
linsen_519 2010-11-05
  • 打赏
  • 举报
回复
total=`wc -l log.test | awk '{print $1}'`
sed -i "${total}i\hellp" log.test
bourbaki 2010-11-05
  • 打赏
  • 举报
回复
如果是bash的话,也没有elseif,只有elif,而且elif后面也有then
bourbaki 2010-11-05
  • 打赏
  • 举报
回复
奇怪的写法,为什么不用 || 逻辑运算把三个条件放在一起呢
cr4315 2010-11-05
  • 打赏
  • 举报
回复
在请教一下,通过脚本判断内核版本可不可以这样写:
if [ `uname -r` == "2.6.28-11-generic" ];then
elseif [ `uname -r` == "2.6.28-14-generic" ]
elseif [ `uname -r` == "2.6.30-14-generic" ];
echo "xxxxxx"
else
echo "ttttttt"
fi
这样可不可以实现如果版本是以上三种,就可以实现打印出xxxxxx,否则打印出ttttt?
cr4315 2010-11-05
  • 打赏
  • 举报
回复
恩。谢谢lgxwqq111。虽然文件的内容颠倒了,但是很谢谢提供思路,我利用中间文件和追加的方式可以达到要求!
freetstar 2010-11-05
  • 打赏
  • 举报
回复
cat log |grep -v '^#' >test.txt
echo "hello" >>test.txt
cat log|grep '^#' >>test.txt
cr4315 2010-11-05
  • 打赏
  • 举报
回复
要用脚本添加,不能用手动添加。
追加只能追加到文件末尾,但是我打算在文件的最后一个#的下一行添加,请问能不能指导下思路,谢谢!
linsen_519 2010-11-05
  • 打赏
  • 举报
回复
追加进去啊!
echo hello >> /home/log
freetstar 2010-11-05
  • 打赏
  • 举报
回复
一个方法是用vi 编辑,然后在特定行插入某个文件的内容

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧