Chinaunix

标题: sed怎么在某个位置后另起一行增加一段text [打印本页]

作者: softarts    时间: 2010-04-13 18:27
标题: sed怎么在某个位置后另起一行增加一段text
linux下这样是可以的:
sed -e "/^POSITION/a$NEWTEXT"  filename
但是HPUX下不认这个命令
有啥办法呢?
作者: ghp268    时间: 2010-04-13 18:55
试试awk??
作者: blackold    时间: 2010-04-13 18:58
回复 1# softarts


    可以用s命令啊。
作者: lkk2003rty    时间: 2010-04-13 19:00
本帖最后由 lkk2003rty 于 2010-04-13 22:04 编辑

如果NEWTEXT是保存要追加信息的变量
  1. sed ”s/^POSITION.*/&\n$NEWTEXT/g“ file
复制代码

作者: Shell_HAT    时间: 2010-04-13 19:13

  1. awk '/^POSITION/{$0=$0"\n""'"$NEWTEXT"'"}2' urfile
复制代码

作者: ghp268    时间: 2010-04-13 19:50
回复 5# Shell_HAT


    shell hat
我有些基础的地方不太懂
像在shell命令行中,
new=hehe;echo '       '    "$new"  '     '

能得到hehe
那在awk中为什么不用这么用呢,即$new在awk中怎么不能照猫画虎呢
这里面的原理不懂
作者: ghp268    时间: 2010-04-13 20:06
我好像又有点理解了
是不是单引号(')在嵌套的时候总是会取消里面一层的(')的特殊含义
那么你在5楼的awk也可以写成
  1. awk '/^POSITION/{$0=$0"\n"" '$NEWTEXT' "}2' urfile
复制代码

作者: Shell_HAT    时间: 2010-04-13 20:21
回复 7# ghp268


你再试试当$NEWTEXT是一个包含空格的字符串变量时的情况吧
作者: softarts    时间: 2010-04-13 21:27
如果NEWTEXT是保存要追加信息的变量
lkk2003rty 发表于 2010-04-13 19:00



    \n 并不能换行,怎么回事?
作者: lkk2003rty    时间: 2010-04-13 22:48
回复 9# softarts


    我在rh as 4下没有问题阿  
ps:我原来写错了应该是在以POSITION开头的行后边增加一行,对不起哈。。。已改正。。。
作者: softarts    时间: 2010-04-15 11:17
回复  softarts


    我在rh as 4下没有问题阿  
ps:我原来写错了应该是在以POSITION开头的行后边增 ...
lkk2003rty 发表于 2010-04-13 22:48



    是啊,我在suse9上也是可以的,就是HPUX上死活没有新增一行
\n 直接变成 n 了
还有什么办法呢?
作者: lkk2003rty    时间: 2010-04-15 11:38
本帖最后由 lkk2003rty 于 2010-04-15 11:47 编辑

回复 11# softarts
假设文件没有空行
  1. sed -e "/^POSITION/G" file |sed  -e "s/^$/$NEWTEXT/g"
复制代码

作者: softarts    时间: 2010-04-15 13:51
回复  softarts
假设文件没有空行
lkk2003rty 发表于 2010-04-15 11:38



    文件肯定有空行的
现在看来问题的关键是HPUX上对a 指令的支持很特殊
作者: lkk2003rty    时间: 2010-04-15 16:57
回复 13# softarts
  1. sed ”s/^POSITION.*/&\xa$NEWTEXT/g“ file
复制代码
用\n对应的ascii码的十六进制,试试hpux现在木有环境,回去看看a是怎么个事。。。。
作者: softarts    时间: 2010-06-03 16:20
最后是这样解决的:
sed -e "s:\(^ModuleCount=\)\([0-9]*$\):\1${NEWLOADERCOUNT}\\
${BKCLOADER}\\
:" $OLDCONFIG > /tmp/sed$$

有些变量懒得改了,自己琢磨一下




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2