比賽我試圖使用ps | sed "/^\s\+3/"
提取有數字3桑達去除輸出
的進程號,我收到一條錯誤消息:sed: -e expression #1, char 8: missing command
我加入一個全球性的標誌:ps | sed "/^\s+3/g"
它會成功,但不會向我顯示所有匹配項,它將刪除所有找到的匹配項。
這是不變的輸出:
PID TTY TIME CMD
3128 pts/8 00:00:00 bash
5279 pts/8 00:00:00 ps
5280 pts/8 00:00:00 sed
最後,這是輸出我得到: PID TTY TIME CMD
5219 pts/8 00:00:00 ps
5220 pts/8 00:00:00 sed
從人頁面中的所有行,-n是:抑制模式空間的自動打印。是不是要壓制我們在這裏想要的相反? (順便說一下這個工程,但我很難理解它) – Cubia 2014-11-06 14:06:59
sed逐行讀取輸入。所以它在對特定行進行任何操作之前將行追加到模式空間。如果'/^* 3 /'與ps中存在的行相匹配,則-n和p會自動打印這些行。 – 2014-11-06 14:10:17
另一種方法是'ps | sed'/^* 3 /!d''我嘗試在編輯中添加答案(因爲它太類似於自己的答案,而且問題已關閉),但它被拒絕:( – 2014-11-06 14:55:45