[問題] 用 ed(1) 編輯最後一個非空白行
食飽未,
如題, 我想用 ed(1) 碰到問題
-------------------------------
#!/bin/sh
# -- append-text-to-the-last-non-blank-line ---
text=" 寫在最後一個非空白行尾巴"
ed -s "$1" [小於 小於] EOF >/dev/null
?.?s/$/$text/
wq
EOF
---------------------------------
倒也順利, 只不過不曉得除了 -s 之外
還有沒有個 --really-quiet?
一定要用 >/dev/null 嗎?
其實這還不是重點
上面的程式碰到尾巴沒有空白行的檔案就錯了!
因為, 好像 ?.? 會從最後第二行找起
結果就錯過了最後一行...
這裡有沒有真的用過 ed(1) 的人啊?
PS. 剛剛連續幾次要打 here-document 的 小於
弄亂的 ptt 的 editor, 也不知怎麼回事.,,,
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.36.62.143 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1666614705.A.A7A.html
推
10/24 21:34,
2年前
, 1F
10/24 21:34, 1F
→
10/24 21:34,
2年前
, 2F
10/24 21:34, 2F
→
10/24 21:34,
2年前
, 3F
10/24 21:34, 3F
→
10/24 21:35,
2年前
, 4F
10/24 21:35, 4F
→
10/24 21:35,
2年前
, 5F
10/24 21:35, 5F
→
10/24 21:37,
2年前
, 6F
10/24 21:37, 6F
哈哈哈... 我都合不嚨嘴巴了, 真的耶!
ed(1) 還會繞回去喔~~~ ho ho ho ho ho ho
唉, 怎麼辦? 也不知道怎麼謝啦...
※ 編輯: cuello (114.36.62.143 臺灣), 10/24/2022 21:41:52
※ 編輯: cuello (114.36.62.143 臺灣), 10/24/2022 22:19:05
推
10/25 15:03,
2年前
, 7F
10/25 15:03, 7F
→
10/25 15:03,
2年前
, 8F
10/25 15:03, 8F
→
10/25 21:32,
2年前
, 9F
10/25 21:32, 9F
※ 編輯: cuello (114.36.70.90 臺灣), 10/26/2022 20:55:04
推
10/26 20:46,
2年前
, 10F
10/26 20:46, 10F
→
10/26 20:48,
2年前
, 11F
10/26 20:48, 11F
→
10/26 20:50,
2年前
, 12F
10/26 20:50, 12F
是說, Debian 為甚麼決定預設不裝 ed(1)? 是煩惱會把硬碟塞暴?
還是基於甚麼微妙的, 長遠的考量要省下這個 package?
所以, 我還要考量人家有沒有 "Standard Editor" 可用...
沒有的話, 有沒有權限安裝?
這些盤算自然要衍生一個問題,
以上這件事情, 不用 ed(1) 的話,
大家都是怎麼做的? 這種任務應該常碰到吧...
用 ed(1) 之前, 我自己自然也做過,
可是, 就不拿出來見笑了好嗎?
因為連我自己都看不下去....
P.S. 還有, 好像 dc(1) 也很容易塞暴硬碟,
所以 Debian 就暫時不安裝了嗎...
※ 編輯: cuello (114.36.70.90 臺灣), 10/26/2022 20:58:18
推
10/26 21:12,
2年前
, 13F
10/26 21:12, 13F
→
10/26 21:19,
2年前
, 14F
10/26 21:19, 14F
→
10/26 21:32,
2年前
, 15F
10/26 21:32, 15F
推
10/26 22:11,
2年前
, 16F
10/26 22:11, 16F
→
10/26 22:11,
2年前
, 17F
10/26 22:11, 17F
→
10/26 22:12,
2年前
, 18F
10/26 22:12, 18F
→
10/26 22:12,
2年前
, 19F
10/26 22:12, 19F
→
10/26 22:12,
2年前
, 20F
10/26 22:12, 20F
經 yvb 提醒, 剛剛才發現, 上面那個程式,
可以把 "ed" 直接改為 "ex" 結果一樣!
起碼就這件事情而言, ex(1) 跟 ed(1) "相容"
現在好奇, ex(1) 也有意要取代 ed(1) 嗎?
不是, 用 sed 做這件事, 我就不會啊~~
起碼不是那麼直接、乾翠...
※ 編輯: cuello (114.36.69.3 臺灣), 10/26/2022 22:47:57
→
10/27 10:06,
2年前
, 21F
10/27 10:06, 21F
※ 編輯: cuello (114.36.69.3 臺灣), 10/27/2022 20:22:30
推
10/27 20:06,
2年前
, 22F
10/27 20:06, 22F
→
10/27 20:10,
2年前
, 23F
10/27 20:10, 23F
→
10/27 20:19,
2年前
, 24F
10/27 20:19, 24F
※ 編輯: cuello (114.36.69.3 臺灣), 10/27/2022 20:24:08
哈哈, 每次編輯文章的時候, 都跟 yvb 剛好 "相出路"
我再次把剛寫的部份移到最後面:
你可能誤會了... 我的意思是: e.g. sed(1) et al. for THIS VERY TASK
How, would you do that?
A
sed -i .... ?
不要再建個新檔, 再覆寫掉正本.
我的感覺是, sed 像是在錄音室編輯磁帶
你每一個時候只看到錄音帶的一個窗子
錄音頭位置跟它週遭
這一類的媒體, 必要時, 有可能涉及 "2nd pass" editing
這是 sequential access media 的本質
不同於 random access media
ed, ex 雖然不見得一次載入所有 data
但它在本質上是 random access, 適合執行像是
1,3m$
這種工作
為了避免太被自己的盲點屏蔽, 我才問大家說
sed(1) awk(1) 真得也可以做得直接了當嗎?
這一定會是很值得學習的啊 ~~~
※ 編輯: cuello (114.36.69.3 臺灣), 10/27/2022 20:29:03
推
10/27 20:33,
2年前
, 25F
10/27 20:33, 25F
我只試到印出最後一個非空白行就卡住了:
sed -n -e '/^$/ !h' -e '$ {x;p;}'
※ 編輯: cuello (114.36.69.3 臺灣), 10/27/2022 20:43:48
→
10/28 14:55,
2年前
, 26F
10/28 14:55, 26F
Linux 近期熱門文章
23
129
PTT數位生活區 即時熱門文章