用户调用脚本并输入 XX.XX.XX.XX
,其中 X's
是数字。
我正在尝试从左侧提取第二组 XX
。
我看过示例:
${1%.*} <- deletes the last . and everything else after
${1##*.} <- deletes last . and everything before
但是没有解释特殊字符的作用,我无法解决我的问题。
如有任何帮助,我们将不胜感激。
最佳答案
使用 awk:
x='12.34.56.78'
awk -F '.' '{print $2}' <<< "$x"
34
使用纯 BASH(数组):
n=$(IFS='.' read -ra arr <<< "$x" && echo "${arr[1]}") && echo "$n"
34
使用没有数组的纯 BASH 1:
y="${x#*.}"
echo "${y%%.*}"
34
使用没有数组的纯 BASH 2:
n=$(IFS='.' && set -- $x && echo "$2") && echo "$n"
34
使用 sed:
sed 's/^[^.]*\.\([^.]*\).*$/\1/' <<< "$x"
34
关于linux - 删除第一期和第二期,同时保留两者之间的所有内容 (Linux),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18623134/