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

时间:2014-11-26 12:53:39

标签: bash sed

如何使用sed将以下属性剪切为只有MAC

MAC evbyminsd58df

我做到了这一点,但它在另一方面起作用:

sed -e 's/^.\{1\}//'

3 个答案:

答案 0 :(得分:11)

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

$ echo "MAC evbyminsd58df" | sed 's/ .*//'
MAC

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

$ echo "MAC evbyminsd58df" | cut -d" " -f1
MAC

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

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

$ echo "MAC evbyminsd58df" | { read a _; echo "$a"; }
MAC

答案 1 :(得分:4)

cut (空格作为分隔符,选择第一个字段):

echo "MAC evbyminsd58df" | cut -d " " -f 1

awk (选择打印第一个字段,空格为默认分隔符):

echo "MAC evbyminsd58df" | awk '{print $1}' 

答案 2 :(得分:2)

使用grep如下,

grep -o '^[^ ]\+' file

OR

grep -o '^[^[:space:]]\+' file

^断言我们刚开始。 [^[:space:]]否定POSIX字符类,它匹配任何字符但不匹配空格,零次或多次。