在Debian环境中运行的脚本中,反转DNS样式字符串的好方法是什么?
例如,如果我的脚本有:
example.org
什么是扭转它的好方法,以便字符串可读:
org.example
更长的例子:
www.example.org
应该转为:
org.example.www
答案 0 :(得分:1)
您可以使用迭代方法构建反向地址:
.
${var##*.}
${var%.*}
这是使用纯Bash功能实现的一种方法:
rdns() {
local s=$1
local reversed last
while [[ "$s" == *.* ]]; do
last=${s##*.}
s=${s%.*}
reversed=$reversed$last.
done
reversed=$reversed$s
echo "$reversed"
}
rdns example
rdns example.org
rdns www.example.org
输出:
example org.example org.example.www
答案 1 :(得分:0)
这可能会
s='www.example.org'
echo $s | tr '.' '\n' | tac | paste -sd.
答案 2 :(得分:0)
你可以尝试
sed -E 's/\./\n/g;s/$/\n/;:A;s/([^\n]*)\n(.*)(\n)(.*)/\2\3.\1\4/;tA;s/\n//'