2015-07-12 57 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}'