给定IP地址 192.168.10.21.somebody.com.br 我需要提取 192.168.10.21 我在下面尝试了CUT,它给出了" cut:无效字节或字段列表"。
cut -d'。' -f-4
答案 0 :(得分:4)
$ echo "192.168.10.21.somebody.com.br" | cut -d'.' -f -4
192.168.10.21
适合我!
答案 1 :(得分:4)
以下所有三个假设您将域名存储在参数
中dom_name=192.168.10.21.somebody.com.br
比使用cut
更有效率,假设要移除的第一个标签并不以数字开头:
echo "${dom_name%%.[[:alpha:]]*}"
如果第一个标签可以以数字开头,那么它们仍然比cut
更有效,但更难以输入:
# Match one more dot than necessary to shorten the regular expression;
# then trim that dot when echoing
[[ $dn =~ (([0-9]+\.){4}) ]]
echo "${BASH_REMATCH[1]%.}"
或
# Split the string into an array, then output the
# first four fields rejoined by dots.
IFS=. read -a labels <<< "$dom_name"
(IFS=.; echo "${labels[*]:0:4}")