我有以下字符串
string="anyanyanay"
我如何阅读字符串中的最后一个字符串?
答案 0 :(得分:4)
Pure BASH:
last="${string:(-1):1}"
OR:
[[ "$string" =~ (.)$ ]] && last="${BASH_REMATCH[1]}"
echo "$last"
y
使用sed:
last=$(sed 's/^.*\(.\)$/\1/' <<< "$string")
echo "$last"
y
使用awk:
awk -F'\0' '{print $NF}' <<< "$string"
y
答案 1 :(得分:2)
kent$ echo "anyanyanay"|grep -o '.$'
y
答案 2 :(得分:2)
使用下面的脚本
#!/bin/bash
string="anyanyanay"
echo ${string#${string%?}}
输出:
y
${string%?}
从字符串中删除最后一个字符。
${string#<character>}
从字符串开始删除characters
。
在这种情况下
${string%?} = anyanyana
${string#${string%?}} = ${string#anyanyana} = y
答案 3 :(得分:1)
echo $string | sed -E 's/(.*)(.)$/\2/'
或
echo $string | tail -c 2
答案 4 :(得分:0)
使用sed
echo $string|sed 's/.*\(.\)$/\1/'
答案 5 :(得分:0)
您可以使用负数索引以相反的顺序获取字符。 -1是最后一个,-2是最后一个,依此类推
echo $ string [-1]