[问题] 简单的script+sed的问题

楼主: achicn3 (Sher)   2018-05-18 23:03:05
已上网google 但小弟资质驽钝 用了好久都没用好
故上来询问各位
有两个script 分别是a b
a的内容只有一行:ls | sed 1iXPXP| ~/b
b的功用是保留第一行字(也就是a内会insert到第一行的XPXP)到hold space之后会输出
ls <reg expression >的东西 再输出XPXP
举个例子
假设ls <reg expression>的output 为
apple
banana
candy
则当我执行./a 会出现
apple XPXP
banana XPXP
candy XPXP
但不知哪里出了问题 当我执行./a只会跑出ls的结果
以下是我b的内容
1 #!/bin/sed -f
2 1h;1d
3 /<reg expression>/{p;x;p;x}
我的想法是
b的第二行:
把第一行(XPXP)放到hold space 并删除第一行的pattern space
b的第三行:(有颜色对照)
我要output 的(by reg expression,r.e. )档案在pattern space
所以我先STDOUT之后hold与pattern交换,交换前的hold为 XPXP ,所以交换后的pattern
space为 XPXP 然后STDOUT之后再把XPXP放回hold space,但都没法跑出预期的结果Orz
在b的第二行一定是先保存XPXP的情况下
我要怎么修改b?!
作者: ddtsatan   2018-05-19 01:28:00
想法很好 可是一点都不简单参考网址 https://goo.gl/FC6p4Pls| sed -e ' aXPXP' | sed -e 'N' -e 's/\n/ /'
作者: Gold740716 (项为之强)   2018-05-19 10:55:00
直接用 G 将 hold space 附加到 pattern space ,再用 s/\n// 把附加上来的 \n 删掉

Links booklink

Contact Us: admin [ a t ] ucptt.com