比如说
a=“ aaa xxx ccc ”
我现在要获取a前面的字符串空格长度应该怎么样呢?
也就是说
第一个字符类型或者是数字类型前面的空格
是
sed -n '/^\s*/' "$a" 显然是不行的 在sed中到底是如何使用正则表达式的呢?
第1个回答 2014-08-20
#可以使用awk实现:
echo "$a" | awk '{str=length($0); sub(/^[ ]*/,"",$0); print str-length($0);}'
echo "$a" | awk '{str=length($0); sub(/^[ ]*/,"",$0); print str-length($0);}'
如:a=“ aaa xxx ccc ”,执行结果为:4
希望可以帮助到你!
第2个回答 2014-08-20
这样算前面的空格长度:
b=$(echo "$a" | sed -r 's/( +)[^ ]+.*/\1/')echo ${#b}
第3个回答 2014-08-20
$bash 1.shstring=how are you?string=ok?$cat 1.sh#!/usr/bin/bashwhile read stringdo echo "string=$string"done < 111 $cat 111how are you?ok?脚本名1.sh, 要读取的文件名111。