去除单词并找到其长度

时间:2019-08-29 20:13:08

标签: linux word strip

我是Linux新手。

我想从abc中获取单词abc-d023-1234,并获取剥离后的单词(abc)的长度

$serverenvicheck =abc-d023-1234
stripfirstword= 'echo  $serverenvicheck | cut -d '-' f -1'

sstripfirstword = awk '{print substr($0,1,4)|' $stripfirstword

输出

./test.sh: line 23: echo  $serverenvicheck | cut -d - f -1: command not found
./test.sh: line 25: sstripfirstword: command not found
stripped firstword 

如何去除单词以及找到单词的长度?

./test.sh: line 23: echo  $serverenvicheck | cut -d - f -1: command not found
./test.sh: line 25: stripfirstword: command not found

1 个答案:

答案 0 :(得分:1)

shell脚本中对变量的分配采用

的形式
var="some values"

请注意,=字符周围没有空格。

最有效的解决方案是

serverenvicheck="abc-d023-1234"
stripfirstword="${serverenvicheck%%-*}"
echo "$stripfirstword"

echo  "length of \$stripfirstword 's value is ${#stripfirstword}"

输出

abc

神奇的事情发生在

中的shell的参数修改功能上
echo ${var%%-*} 

的意思是“从变量值的右边匹配,最长的字符串匹配-*”(使用shell reg ex,其中*等同于大多数语言的{{ 1}})。

如果您使用echo .*,则会从右边匹配最短的匹配项,对于您而言,您会得到${var%-*}

IHTH