[問題] 用 ed(1) 編輯最後一個非空白行

作者: cuello (cuello)   2022-10-24 20:31:43
食飽未,
如題, 我想用 ed(1) 碰到問題
作者: yvb   2022-10-24 21:34:00
ed -s cuello.txt << EOF >/dev/null 2>&11?.?s/$/$text/wqEOF試過修改 cuello.txt 看起來 OK. :P
作者: cckuan2718   2022-10-25 15:03:00
ed(1)讀取玩檔案會把行號設成最後一行... 很怪的設計
作者: cuello (cuello)   2022-10-25 21:32:00
純亂想, 啊我檔案讀完指標就是指在這裡啊~ :)
作者: yvb   2022-10-26 20:46:00
這樣想也沒錯啊. 查看 ed 的 man page, LINE ADDRESSING 的第一段的最後兩句, 想像 ed file 就是進 ed 後再做 r file ,再去查看 r file 就是如此.ed 和 dc 都是很久遠的工具了吧. 使用 ex(vim) 和 bc 不好嗎?至於在最後一行說是怪設計... 久遠的工具當然有其歷史背景.
作者: cuello (cuello)   2022-10-26 21:32:00
啊~~ ex(1) 我還沒試過說...
作者: cckuan2718   2022-10-26 22:11:00
之前看完Ed Mastery這本書之後試過用ed(1)裝arch Linux最後雖然一切正常 但我的心得.. 用cat加上heredoc或是直接用sed搞不好還比較快
作者: leolarrel (真.粽子無雙)   2022-10-27 10:06:00
當初你也不會ed/ex, 所以你也只是"現在"不會sed
作者: yvb   2022-10-27 20:06:00
與其說幹話, 樓上要不要提供原PO這個問題使用 sed 的做法?這問題我覺得使用 ed/ex 似乎簡單許多.ed ex 的故事請自行參考 wikipedia.sed -i 或許可以, 但應該會用 b x h 等我覺得很不直覺的操作.
作者: leolarrel (真.粽子無雙)   2022-10-28 14:55:00
會是幹話嘛? 好拉你說是就是,反正這是世界是你最大
作者: yvb   2022-11-07 22:09:00
套句大師兄的話, 不要誤會, 我不是針對你... :P包含我自已,說些好像有理其實沒啥幫助或不相干的話,都是幹話.回正題, 這問題用 sed 好像找到的解法, 多半是搭配 tac, 不然就是特定 pattern 而不是非空白行...所以我做個變換, 先將非空白行換成特定 pattern 結尾, 最後再換回去... 因此寫法如下: sed -i \'s/.$/&=/;1h;1!H;$!d;x;s/\(.*\)=/\1'"$text"'/;s/=\n/\n/g'不確定是否可以完全正常運作就是了.

Links booklink

Contact Us: admin [ a t ] ucptt.com