我想为每个IP入口将以下命令的输出存储在单独的变量中:
ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1'有人知道怎么做吗?
发布于 2021-07-22 12:19:35
将值存储为单独变量的要求似乎不合适。只需生成列表,并循环它或其他什么。
切题,你真的想失去长链的greps。
ifconfig |
awk '$1 == "inet" && ($2 != "127.0.0.1" && $2 != "addr:") { print $2 }
$1 == "inet" && $2 == "addr:" && $3 != "127.0.0.1" { print $3 }'若要将结果分配给Bash数组,请尝试
array=($(ifconfig | awk '...'))但是,通常情况下,您可能只想遍历结果:
ifconfig |
awk '...' |
while IFS='' read -r ip; do
# something with "$ip"
donehttps://stackoverflow.com/questions/68484651
复制相似问题