如何在bash中读取字符串中最后一个字符的目录?

时间:2014-02-06 10:16:18

标签: linux bash shell

我有以下字符串

string="anyanyanay"

我如何阅读字符串中的最后一个字符串?

6 个答案:

答案 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]