我怎样才能从string使用sed第一个X字符?

我在一个小型的工业机器上编写embedded式Linux的shell脚本。 我有一个variables包含文本pid: 1234 ,我想剥离行中的第一个X字符,所以只有1234停留。 我有更多的variables,我需要“干净”,所以我需要削减X的第一个字符和${string:5}在我的系统中由于某种原因不起作用。

盒子似乎只有sed

我正在努力使以下工作:

 result=`echo "$pid" | sed 's/^.\{4\}//g'` 

有任何想法吗?

这也将完成这项工作:

 echo "$pid"|awk '{print $2}' 

以下应该工作:

 var="pid: 1234" var=${var:5} 

你确定bash是执行脚本的shell吗?

使用-r选项(“在脚本中使用扩展正则expression式”) sed以便使用{n}语法:

 $ echo 'pid: 1234'| sed -r 's/^.{5}//' 1234 

下面是使用cut(1)剪切前X个字符的简洁方法。 这个例子删除了前4个字符。

 echo "$pid" | cut -c 4- 

有机会,你也会cut 。 如果是这样:

 [me@home]$ echo "pid: 1234" | cut -d" " -f2 1234 

从string中剪切前两个字符:

 string="1234567890"; echo "${string:2}" 

通过awk '{print substr($0,42)}' ,其中42比要删除的字符数多一个。 例如:

 $ echo abcde| awk '{print substr($0,2)}' bcde $ 

另一种方式,用head代替sed

 result=`echo $pid | head -c 4`