[問題] 簡單的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