如何 grep VPS IP 地址并将其放入文本文件

如何 grep VPS IP 地址并将其放入文本文件

我如何获取(发现)我的 VPS IP 地址,然后对其进行 grep,然后将其放入文件 myinfo.txt 中,放到“这是我的 IP”行

例如,我不知道我的 IP,但我可以使用 ifconfig 命令来了解。任务是编写可以获取(发现)我的 IP 的命令,然后将其放入 tex 文件中的特定行。之后,如果我打开我的文本文件,我必须看到:文本 mytext 文本 IP - 这是我的 IP

我找到了这个命令,但不知道如何正确使用它

IP=$(ip addr | grep 'inet' | grep -v inet6 | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1)
read -p "IP address: " -e -i $IP IP 

答案1

cat myinfo.txt | egrep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'


cat myinfo.txt打印文件

|将结果传输到下一个命令中

egrep -oE找到模式*

'[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'是模式,其中:

  • [0-9]{1,3}表示“由数字组成的 1 到 3 个字符
  • \.转义点。否则,模式会将点理解为“您想要的任何字符(包括点,也可以是其中任何一个:abcdef...)”

编辑 : '[0-9]{1,3}(\.[0-9]{1,3}){3}'更短,因为你的模式中有重复的模式。你可以使用()来实现这一点


如果你经常使用该命令,你可能希望在文件中使用alias该命令.bashrc

echo -e "alias egrep_ipv4=\"egrep -oE '[0-9]{1,3}(\.[0-9]{1,3}){3}'\"" >> $HOME/.bashrc`
source $HOME/.bashrc

然后你只需要将文本通过管道传输到 egrep_ipv4

cat myinfo.txt | egrep_ipv4

相关内容