关于shell编程的文本处理
有一行文本如下:
int n,i,s[10],a,j;
如何在shell程序中提取到10,然后保存到变量中?
------解决方案--------------------a=$(echo "int n,i,s[10],a,j;"|awk -F'\\[|\\]' '{print $2}')
把结果赋值给变量a
------解决方案--------------------#! /bin/sh
str=`echo "int n,i,s[101],a,j;" | grep -o "\[.*\]"`
str=`echo ${str:1:${#str}-2}`
echo $str
------解决方案--------------------grep -oP '(?<=\s[)\d+'
------解决方案--------------------$ b=$(echo "int n,i,s[10],a,j;"|sed 's/[^0-9]*\([0-9]*\).*/\1/');echo $b
10