Jos*_*eau 9 shell bash shell-script regular-expression
2492 some string continues here
Run Code Online (Sandbox Code Playgroud)
我想将其转换为
2492
Run Code Online (Sandbox Code Playgroud)
在巴什。我该怎么做?
这感觉很接近,但不起作用:
var="2492 some string continues here "
echo ${var%[[:space:]]*}
Run Code Online (Sandbox Code Playgroud)
gle*_*man 15
因为有多个空格要使用
${var%%[[:space:]]*}
# ...^^
Run Code Online (Sandbox Code Playgroud)
删除以空格开头的最长尾随子字符串
只需一个,%您就可以删除最短的空格序列,后跟零个或多个字符,这只是字符串中的最后一个空格。
$ echo ">$var<"; echo ">${var%[[:space:]]*}<"; echo ">${var%%[[:space:]]*}<"
>2492 some string continues here <
>2492 some string continues here <
>2492<
Run Code Online (Sandbox Code Playgroud)
如果你只是在寻找第一个 word,你可以这样做:
read -r word rest_of_string <<<"$var"
echo "I have: $word"
Run Code Online (Sandbox Code Playgroud)
假设您没有更改 IFS 变量,这将处理前导空格。