0
IP 12.34.56.78

我想找到一种方法来回显它并显示以下输出

78.56.34.12

与输出相同host 12.34.56.78但没有所有其他行话....

也许可以只使用主机并删除所有其他内容。理想情况下会避免主机查找。

有任何想法吗?

谢谢

4

2 回答 2

3

试试这个单行:

awk -F. '{s="";for (i=NF;i>1;i--) s=s sprintf("%s.",$i);$0=s $1}1' file

用你的例子:

kent$  echo "12.34.56.78"|awk -F. '{s="";for (i=NF;i>1;i--) s=s sprintf("%s.",$i);$0=s $1}1'
78.56.34.12

如果您有前缀HOST or IP or whatever

kent$  echo "FOO 12.34.56.78"|awk -F'[. ]' '{s="";for (i=NF;i>2;i--) s=s sprintf("%s.",$i);$0=$1" "s $2}1' 
FOO 78.56.34.12
于 2013-04-22T12:50:29.240 回答
1

我不认为我的回答能解决你的问题,Kent 似乎为你提供了一个很好的方法,但如果其他人想要反转 BASH 字符串并在这里结束,这可能很有用:

echo -n $YOUR_STRING | tac -rs [^-\n] 
于 2013-04-22T14:33:19.173 回答