使用SHELL脚本,sed截取获取文件中指定字符串

sensor-ver.bin文件内容如下:

module=sensor
libver=1234

...

需要获取libver后面的1234字符串。方式如下

VER_TMP=$(grep "ver" sensor/jvs3518esiv200-sensor-ver.bin)   #获取ver行的字符串赋值给变量
SENSOR_VER=$(echo ${VER_TMP}|sed 's/^ver=\([0-9]*\)/\1/g'|sed 's/\r$//') #使用sed来截取1234字符串
最后获取的SENSOR_VER为1234.

sed原理:

sed 's/^ver=\([0-9]*\)/\1/g' :获取1234字符串,原型为

\(..\) 匹配子串,保存匹配的字符

匹配给定样式的其中一部分:

echo libver=1234 | sed 's/^libver=\([0-9]\)/\1/'
1234

命令中 libver=1234,被替换成了1234。样式匹配到的子串是1234,\(..\) 用于匹配子串,对于匹配到的第一个子串就标记为 \1

这里匹配后的字符串里含有\r字符,所以需要进行去除/r字符操作:

sed 's/\r$//'








你可能感兴趣的:(shell脚本)