我正在编写一个脚本,该脚本检查连接到服务器的所有用户的列表(使用谁),并将仅字母a,b,c或d的用户名列表写入文件Information。这是我到目前为止的内容:
who | grep '[a-d]' >> Information
但是,显示此命令的命令:
username pts/148 2019-01-29 16:09 (IP address)
我不明白的是为什么我的grep搜索还会显示pts / 148,日期,时间和IP地址。我只希望它将用户名发送到文件信息。
感谢您的帮助。
答案 0 :(得分:2)
另一种方法是使用command
...
class EventServiceProvider extends ServiceProvider
{
/**
* The event listener mappings for the application.
*
* @var array
*/
protected $listen = [
Registered::class => [
SendEmailVerificationNotification::class,
/* add some notification here that sends you an email */
],
];
...
仅获取字符串的第一部分。
cut
答案 1 :(得分:1)
使用awk输出第一个集群匹配[a-d]
的记录:
$ who | awk '$1~/[a-d]/' >> Information
使用grep
搜索第一个空格前带有[a-d]
的行:
$ who | grep -o "^[^ ]*[a-d][^ ]*" >> Information
答案 2 :(得分:0)
您需要获取第一个单词,否则grep
将显示包含匹配文本的整行。您可以使用awk
:
who | awk '{ if (substr($1,1,1) ~ /^[a-d]/ ) print $1 }' >>Information