如何获取Bashvariables的第一个字母?
我有一个Bashvariables, $word ,有时是一个单词或句子,例如:
word="tiger"
要么:
word="This is a sentence."
我怎样才能使一个新的Bashvariables,只有在variables中find的第一个字母相等? 例如,以上将是:
echo $firstletter t
要么:
echo $firstletter T
initial="$(echo $word | head -c 1)"
每当你在问题描述中说“第一”, head就是一个可能的解决scheme。
word="tiger" firstletter=${word:0:1}
word=something first=${word::1}
既然你有一个sed标签这里是一个sed答案:
echo "$word" | sed -e "{ s/^\(.\).*/\1/ ; q }"
为那些喜欢那些(我做!)玩的玩:
{
-
s:开始替代例程-
/:开始指定要replace的内容 -
^\(.\):捕获组1中的第一个字符 -
.*:,确保行的其余部分将被replace -
/:开始指定replace -
\1:插入组1 -
/:剩下的被丢弃;
-
-
q:退出sed这样如果有的话,其他行不会重复这个块。
}
那很好玩! :)你也可以使用grep等,但是如果你在bash ${x:0:1} magick仍然是更好的解决scheme。 (我花了一个小时试图使用POSIXvariables扩展来做到这一点,但不能:( )
一个便携的方法是使用参数扩展(这是一个POSIXfunction) :
word='tiger' first="${word%%"${word#?}"}"
使用bash 4:
x="test" read -N 1 var <<< "${x}" echo "${var}"