我試圖獲得ps -aux
的PID字段。我知道我可以使用ps -aux | awk '{print $2}'
來達到這個目的,但是實際上我想看看我是否可以使用cut
命令來做同樣的事情。我的想法是指定一個分隔符,選擇這樣的第二場:如何確定Linux中的空白字符的確切字符?
ps -aux | cut -d[delimiter] -f2
使用空格作爲分隔符(' '
)沒有工作,也沒有標籤(\t
)。
一般來說,我如何在linux中找出白空間的確切字符?
我試圖獲得ps -aux
的PID字段。我知道我可以使用ps -aux | awk '{print $2}'
來達到這個目的,但是實際上我想看看我是否可以使用cut
命令來做同樣的事情。我的想法是指定一個分隔符,選擇這樣的第二場:如何確定Linux中的空白字符的確切字符?
ps -aux | cut -d[delimiter] -f2
使用空格作爲分隔符(' '
)沒有工作,也沒有標籤(\t
)。
一般來說,我如何在linux中找出白空間的確切字符?
要識別其他不可打印或類似外觀的字符(如空格),將管道輸出到工具如xxd
或od -c
。例如,這同時輸出每個字符的十六進制值以及爲便於查找文本:
ps -aux | xxd -g 1 # -g 1 outputs each character individually
不過,我覺得你的問題是,ps -aux
使用領域之間的多個空間; cut
不處理多個連續的分隔符,因此它會在第一個和第二個空間之間打印任何內容,即沒有任何內容。
如果你真的想用砍你需要刪除起始空格和重複空格:
ps -aux | sed 's/^ *//;s/ */ /g' | cut -d' ' -f2
爲了得到一個ps
命令,你可以做到這一點的PID:
cut不支持多字符作爲分隔符。 有場之間的多個空格,如果你真的想用切割:
ps aux | sed 's/ */ /g' | cut -d ' ' -f 2
的信息:您在ps aux
手段使用u
,根據man ps
:
ü顯示面向用戶格式
所以你明確地要求一個人類可讀輸出,然後你用一些工具分析它?這不是很合適(至少可以這麼說)。如果您需要格式化ps
的輸出,請使用-o
(或--format
)選項,如果您的版本ps
接受它。因此:
ps ax -o pid
將多更好。
謝謝,我在通過手冊頁後發現了'-o'標誌。我同意這是一個更好的做事方式。另一方面,我仍然試圖讓linux命令更加舒適,所以嘗試以更難/更醜的方式完成事情並不傷害,只是爲了使用不同的命令來練習一些練習。 –
但這很危險:一旦你知道了一些如何使用管道,以及工具切割,awk,sed,頭部,尾部和所有這些,你會製造可怕的長連鎖管道,你將解析輸出不意味着被解析,等等...(就像每個人一樣),而且它太糟糕了。我認爲從一開始就知道如何有效和正確地做事是一種好習慣。 –
我的意思是,看看其他答案......沒有人擔心解析'ps'的輸出:「哦,這很容易,請稍微剪下一點sed,然後輕輕插入awk和grep」 。 ':-('。 –
你也可以試試awk? – anishsane