Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix grep一个字符串,然后仅在列表中显示该字符串_Unix_Sorting_Grep - Fatal编程技术网

Unix grep一个字符串,然后仅在列表中显示该字符串

Unix grep一个字符串,然后仅在列表中显示该字符串,unix,sorting,grep,Unix,Sorting,Grep,谁能帮我看看怎么做 我使用netstat查找当前有多少服务器连接到我的服务器,我得到了以下列表,server001和002有许多服务连接到myserver01 myserver01.1050 server001.com.51535 64860 0 49680 0 ESTABLISHED myserver01.1050 server001.com.36565 64860 0 49680 0 ESTABLISHED myserver01.1050

谁能帮我看看怎么做

我使用netstat查找当前有多少服务器连接到我的服务器,我得到了以下列表,server001和002有许多服务连接到myserver01

myserver01.1050    server001.com.51535 64860      0 49680      0 ESTABLISHED
myserver01.1050    server001.com.36565 64860      0 49680      0 ESTABLISHED
myserver01.1050    server002.com.35262 64860      0 49680      0 ESTABLISHED
myserver01.1050    server002.com.41700 64860      0 49680      0 ESTABLISHED
myserver01.1050    server002.com.36525 64860      0 49680      0 ESTABLISHED
myserver01.1050    server002.com.54575 64860      0 49680      0 ESTABLISHED
myserver01.1050    server001.com.44401 64860      0 49680      0 ESTABLISHED
myserver01.1050    server001.com.47922 64860      0 49680      0 ESTABLISHED
myserver01.1050    server001.com.57080 49680      0 49680      0 ESTABLISHED
谁能告诉我如何对列表进行grep或排序,我可以得到一个唯一的服务器名称,比如下面的名称

myserver01.1050    server001.com
myserver01.1050    server002.com
谢谢

试试这个:

  $ grep myserver01.1050 logfile | \
    grep ' server' | \
    awk -F\. '{print $1, $2}' | \
    sort -u
尽管我无法判断您是只需要服务器名还是只需要一对名称。有点猜测,如果我误解了这个问题,我很抱歉。

试试这个:

  $ grep myserver01.1050 logfile | \
    grep ' server' | \
    awk -F\. '{print $1, $2}' | \
    sort -u

尽管我无法判断您是只需要服务器名还是只需要一对名称。有点猜测,如果我误解了这个问题,我很抱歉。

这有点难看,但它可以工作(
6333197.txt
包含您的netstat输出):


-F
定义输入字段分隔符,()

这有点难看,但它可以工作(
6333197.txt
包含netstat输出):


-F
定义输入字段分隔符,()

所有操作都可以在一行awk命令中完成,如下所示:

awk '{gsub(/\.[0-9]*$/, "", $2); serv[$2]=$1;} END{n=asorti(serv, dest); for (i = 1; i <= n; i++) print serv[dest[i]] " " dest[i];}' file.txt

所有这些都可以在一行awk命令中完成,如下所示:

awk '{gsub(/\.[0-9]*$/, "", $2); serv[$2]=$1;} END{n=asorti(serv, dest); for (i = 1; i <= n; i++) print serv[dest[i]] " " dest[i];}' file.txt

这是一个使用
sed
sort-u
的版本:

sed 's/^\(\S\S*\s\s*\S\S*\)\.[0-9][0-9]*\s.*/\1/' filename | sort -u
sed -r 's/^(\S+\s+\S+)\.[0-9]+\s.*/\1/' filename | sort -u
分别。使用GNU版本的
sed
ans
sort-u

sed 's/^\(\S\S*\s\s*\S\S*\)\.[0-9][0-9]*\s.*/\1/' filename | sort -u
sed -r 's/^(\S+\s+\S+)\.[0-9]+\s.*/\1/' filename | sort -u

这是一个使用
sed
sort-u
的版本:

sed 's/^\(\S\S*\s\s*\S\S*\)\.[0-9][0-9]*\s.*/\1/' filename | sort -u
sed -r 's/^(\S+\s+\S+)\.[0-9]+\s.*/\1/' filename | sort -u
分别。使用GNU版本的
sed
ans
sort-u

sed 's/^\(\S\S*\s\s*\S\S*\)\.[0-9][0-9]*\s.*/\1/' filename | sort -u
sed -r 's/^(\S+\s+\S+)\.[0-9]+\s.*/\1/' filename | sort -u
使用
uniq-c
也可以得到一个计数

$ cut -d'.' -f1-3 input | sort | uniq -c
      5 myserver01.1050    server001.com
      4 myserver01.1050    server002.com
使用
uniq-c
也可以得到一个计数

$ cut -d'.' -f1-3 input | sort | uniq -c
      5 myserver01.1050    server001.com
      4 myserver01.1050    server002.com

使用
sed
sort

sed 's/\(.*\)\..*/\1/'  filename | sort -u

使用
sed
sort

sed 's/\(.*\)\..*/\1/'  filename | sort -u

谢谢,伙计,是的,我只想要服务器名,只想要唯一的。谢谢,伙计,是的,我只想要服务器名,只想要唯一的。这并不难看,漂亮的外壳极简主义;-)。。。哦,等等,不需要uniq的额外进程,使用
sort-u
;-)@Sheller,越短越好;-)谢谢-斜杠
uniq
。奖项竞争者,但在其他方面非常整洁。(+1)那不难看,那漂亮的贝壳极简主义;-)。。。哦,等等,不需要uniq的额外进程,使用
sort-u
;-)@Sheller,越短越好;-)谢谢-斜杠
uniq
。奖项竞争者,但在其他方面非常整洁。(+1)我认为这会产生一个单一的名称,而不是要求的成对名称。是的,我有一些自由,写它只是为了显示单个唯一的服务器名称,去掉了看起来冗余的信息。我认为这会产生一个单一的名称,而不是要求的成对名称。是的,我有一些自由,写它只是为了显示单个唯一的服务器名称,去除了看起来像是冗余信息的内容。第一个版本,更少的字符:
cut-d'.-f1-3输入| sort-u
第一个版本,更少的字符:
cut-d'.-f1-3输入| sort-u