用sed获取字符串的第一个单词

Vla*_*ski 6 bash sed

我如何用sed切割以下属性才有MAC

MAC evbyminsd58df
Run Code Online (Sandbox Code Playgroud)

我这样做但它在另一方面起作用:

sed -e 's/^.\{1\}//'
Run Code Online (Sandbox Code Playgroud)

fed*_*qui 17

只需删除空间中的所有内容:

$ echo "MAC evbyminsd58df" | sed 's/ .*//'
MAC
Run Code Online (Sandbox Code Playgroud)

正如您提到的cut,您可以使用cut基于空格的第一个字段作为分隔符:

$ echo "MAC evbyminsd58df" | cut -d" " -f1
MAC
Run Code Online (Sandbox Code Playgroud)

使用纯Bash,其中任何一个:

$ read a _ <<< "MAC evbyminsd58df"
$ echo "$a"
MAC

$ echo "MAC evbyminsd58df" | { read a _; echo "$a"; }
MAC
Run Code Online (Sandbox Code Playgroud)


Arj*_*Dan 5

使用cut(以空格作为定界符,选择第一个字段):

echo "MAC evbyminsd58df" | cut -d " " -f 1
Run Code Online (Sandbox Code Playgroud)

使用awk(选择打印第一个字段,空格是默认定界符):

echo "MAC evbyminsd58df" | awk '{print $1}' 
Run Code Online (Sandbox Code Playgroud)