我是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
答案 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