String 如何拆分字符串并将每个拆分存储到变量中
对于输出,我得到String 如何拆分字符串并将每个拆分存储到变量中,string,bash,cut,String,Bash,Cut,对于输出,我得到 function check() { word=name@gmail.com arr=$(echo $word | tr "@" "\n") for x in $arr do echo "> $x" done } 我想将它们存储到单独的变量中。我该怎么做 我要去吗 name gmail.com 我在这里迷路了。请帮帮我 您可以使用以下read语句,其中@被定义为字段分隔符: for x in $arr do
function check()
{
word=name@gmail.com
arr=$(echo $word | tr "@" "\n")
for x in $arr
do
echo "> $x"
done
}
我想将它们存储到单独的变量中。我该怎么做
我要去吗
name
gmail.com
我在这里迷路了。请帮帮我 您可以使用以下
read
语句,其中@
被定义为字段分隔符:
for x in $arr
do
echo "> $x"
first=$x
second=$x
done
您还可以使用
cut
:
$ echo "var1=$var1, var2=$var2"
var1=name, var2=gmail.com
$name=$(cut-d'@'-f1您可以使用以下read
语句,其中@
被定义为字段分隔符:
for x in $arr
do
echo "> $x"
first=$x
second=$x
done
您还可以使用cut
:
$ echo "var1=$var1, var2=$var2"
var1=name, var2=gmail.com
$name=$(cut-d'@'-f1您可以使用bash:
您可以使用bash:
可能值得明确指出的是,读取
方法效率更高,应该尽可能优先使用。@charlesduff感谢您的评论。为了确保我理解正确:它是否因为只使用内置程序而更有效?这避免了与comman相关的fork/exec/read开销d替换。可能值得明确指出的是,read
方法效率更高,应该尽可能首选。@CharlesDuffy感谢您的评论。为了确保我理解正确:它更高效是因为它只使用内置程序吗?这一点,以及避免fork/exec/read开销关联ted with command substitution.FYI,function foo(){
与基线POSIX shell不必要地不兼容。只需省略function
关键字,并将函数定义为foo(){…
另外,arr
的名称有点误导人,因为它实际上不是数组——bash数组有自己的语法,这不是其中之一。看,嘿,我不知道POSIX shell是什么。我正在使用Linux。它工作得很好。**仅供参考,function foo(){
与基线POSIX shell不必要地不兼容。只需省略函数
关键字,并将函数定义为foo(){…
另外,arr
的名称有点误导人,因为它实际上不是数组——bash数组有自己的语法,这不是其中之一。看,嘿,我不知道POSIX shell是什么。我正在使用Linux。它工作得很好**
$ var="name@gmail.com"
# Remove everything from the beginning of the string until the first
# occurrence of "@"
$ var1="${var#*@}"
# Remove everything from the end of the string until the first occurrence
# of "@"
$ var2="${var%@*}"
$ echo "$var1"
gmail.com
$ echo "$var2"
name