Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.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
Bash获取和解析结果_Bash_Parsing - Fatal编程技术网

Bash获取和解析结果

Bash获取和解析结果,bash,parsing,Bash,Parsing,我正在尝试解析的一些结果 arp -a 及 我如何运行bash脚本来运行arp-a并打印每个返回的IP?您可以使用awk: arp -a | awk '{ gsub(/[()]/, "", $2); print $2; }' 您可以使用awk执行此操作: arp -a | awk '{ gsub(/[()]/, "", $2); print $2; }' 对于GNU grep和其他一些支持PCRE的软件: arp -a | grep -Po '.*?\(\K.*?(?=\).*)' AW

我正在尝试解析的一些结果

arp -a


我如何运行bash脚本来运行arp-a并打印每个返回的IP?

您可以使用awk:

arp -a | awk '{ gsub(/[()]/, "", $2); print $2; }'

您可以使用awk执行此操作:

arp -a | awk '{ gsub(/[()]/, "", $2); print $2; }'
对于GNU grep和其他一些支持PCRE的软件:

arp -a | grep -Po '.*?\(\K.*?(?=\).*)'
AWK:

sed:

Perl:

对于GNU grep和其他一些支持PCRE的软件:

arp -a | grep -Po '.*?\(\K.*?(?=\).*)'
AWK:

sed:

Perl:


下面是另一个解决方案:

arp -a | cut -f 2 -d ' '
如果不需要括号:

arp -a | cut -f 2 -d ' ' | sed 's/[()]//g'
或者,要将收集的ip地址转储到阵列中,请执行以下操作:

ips=( $(arp -a | cut -f 2 -d ' ' | sed -r -e 's/[()]//g') )
要访问:

echo ${ips[1]}

下面是另一个解决方案:

arp -a | cut -f 2 -d ' '
如果不需要括号:

arp -a | cut -f 2 -d ' ' | sed 's/[()]//g'
或者,要将收集的ip地址转储到阵列中,请执行以下操作:

ips=( $(arp -a | cut -f 2 -d ' ' | sed -r -e 's/[()]//g') )
要访问:

echo ${ips[1]}
纯Bash:

arp -a  | while read -a line ; do
  echo ${line[1]:1:-1}
done
纯Bash:

arp -a  | while read -a line ; do
  echo ${line[1]:1:-1}
done

我怎样才能得到第一个并将IP存储在一个变量中?@Michael:你的问题中没有这个。var=$arp-a | awk-F'[]“{print$2;exit}”将是一种方式。哎呀,在它的末尾应该有一个右括号:var=$arp-a | awk-F'[]”{print$2;exit}我如何获取第一个并将IP存储在一个变量中?@Michael:你的问题中没有这个。var=$arp-a | awk-F'[]“{print$2;exit}”将是一种方式。哎呀,在它的末尾应该有一个右括号:var=$arp-a | awk-F'[]“{print$2;exit}”