我正在为一个小型工业设备中的嵌入式Linux编写shell脚本。我有一个包含文本pid: 1234的变量,我想去掉该行的前X个字符,所以只保留1234个字符。我有更多的变量需要“清理”,所以我需要去掉X个开头的字符,并且由于某种原因,${string:5}在我的系统中不能工作。
这个盒子里唯一的东西似乎是sed。
我正在尝试使以下内容生效:
result=$(echo "$pid" | sed 's/^.\{4\}//g')有什么想法吗?
发布于 2012-07-13 19:58:53
这也可以完成这项工作:
echo "$pid"|awk '{print $2}'发布于 2012-07-13 20:40:45
下面的代码应该可以工作:
var="pid: 1234"
var=${var:5}你确定bash是执行你的脚本的外壳吗?
即使是与POSIX兼容的
var=${var#?????}这比使用外部过程更可取,尽管这需要您以固定长度模式的形式对5进行硬编码。
发布于 2014-12-04 16:09:20
下面是一个使用cut(1)截取前X个字符的简明方法。此示例通过剪切从第5个字符开始的子字符串来删除前4个字符。
echo "$pid" | cut -c 5-https://stackoverflow.com/questions/11469989
复制相似问题