2015-07-12 55 views
0

我一直在試圖獲取用戶在bash中登錄的日期。從誰的命令獲取用戶的登錄日期

我嘗試使用

who | grep 'user' 

這讓我對用戶就好數據。但是,在獲取包含用戶登錄日期的字符串時,我一直不成功:

who | grep 'user' | cut -f3 

由於某種原因不起作用。

我試圖用一個空格作爲分隔符,但現場削減將取決於用戶名的長度不同而不同:

who | grep 'user' | cut -d ' ' -f12 

會給我一個固定長度的用戶名的日期,但會給我一個不同長度的用戶名的不同字段。

看起來分隔符是一個製表符,因爲第一個和第二個字段之間的空格數根據用戶名的長度而變化。我試圖指定分隔符作爲選項卡(儘管裁減假定它是),但這也不起作用。

回答

0

嘗試使用awk代替cut,你甚至可以得到awk做過濾grep目前正在做:

who | awk '/user/{print $3}' 

採用$3意味着數據的第三列將被輸出。 Awk的默認字段分隔符是sequence of whitespaces

使用awk只更換您的cut命令(而不是grep)會導致:如果你推動了第二個變體爲主要答案

who | grep 'user' | awk '{print $3}' 
+0

會給予好評。 – tripleee

0

使用awk或其他一些工具不受cut多個分隔符的困擾。

who | awk '{print $3}'