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

私の答えがあなたの質問を解決するとは思いません.ケントはあなたに良い方法を提供したようですが、他の人がBASH文字列を逆にしてここにたどり着こうとしている場合、これは役立つかもしれません:

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