[问题] 用 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