我想从电子邮件中提取用户名。示例:johndoe@gmail.com 域将始终为@gmail.com,但用户名的长度可以不同但我必须在 linux bash 中使用子字符串(无 grep、sed、cut 等),例如:
str="johndoe@gmail.com"
echo ${str:position:length}
Run Code Online (Sandbox Code Playgroud)
或者可能使用如下循环:
length=`expr length "$str"`
for ((i=0; i<$length; i++))
do
echo ${str:$i:length}
done
Run Code Online (Sandbox Code Playgroud)
问题是,我应该在位置和长度上写什么。代码如何知道我是否需要提取“@”之前的所有字母。任何的想法?谢谢!