我想撤回lastlog -u 'user'
输出的第四个字段,但是使用cut -d' ' -f4
我只能撤回第一个字段,否则要输出空间。
Username Port From Latest
auser pts/31 c-73-123-11-86.h Sun Jan 19 13:52:08 -0800 2014
我想删除'太阳1月19日13:52:08'。考虑到我想要的行中有多个空格,并且在输入不同长度的用户名时,我该怎么做。如何解决此问题?
我相信这将做您要求的
lastlog -u 'user' | grep -v Latest | awk '{$1="";$2="";$3="";print $0 }'
在您的示例中,这将输出
Sun Jan 19 13:52:08 -0800 2014
看来,使用任何分符将lastlog
输出分开是有问题的,因为某些字段 May 是空的:
ubuntu@ubuntu:〜$ lastlog -u ubuntu最新的用户名端口Ubuntu **永远不会登录**ubuntu@ubuntu:〜$
另外,您只能以正确数量的字符数cut
,尽管如果输出在新版本中发生变化,这也可能是有问题的:
ubuntu@ubuntu:〜$ lastlog -u ubuntu |{ 读;切割-c44-;}**永远不会登录**ubuntu@ubuntu:〜$
注意read
只需读取并丢弃lastlog
输出的第一/标头线即可。
您可以将行的长度计算到字符串Latest
并在此点切下:
$ lastlog -u $USER | (
IFS= read -r line1
IFS= read -r line2
length=${#line1}
echo "${line2::$((length - 6))}"
)
对于我的用户,这返回:
abcdef tty1
(我没有此用户的"来自"值)