猛击“反转”一个字符串

时间:2013-04-22 12:38:02

标签: bash shell ip reverse

IP 12.34.56.78

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

78.56.34.12

host 12.34.56.78的输出相同,但没有其他所有术语......

也许可以使用主机并删除所有其他东西。理想情况下,可以避免主机查找。

有什么想法吗?

由于

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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

echo -n $YOUR_STRING | tac -rs [^-\n]