IP 12.34.56.78
我想找到一种方法来回显这个并显示以下输出
78.56.34.12
与host 12.34.56.78
的输出相同,但没有其他所有术语......
也许可以使用主机并删除所有其他东西。理想情况下,可以避免主机查找。
有什么想法吗?
由于
答案 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]