我正在为小型工业机器中的嵌入式Linux编写shell脚本。我有一个变量,其中包含文本pid: 1234
,我想从行中去掉第一个X字符,因此只保留1234个字符。我有更多的变量需要“清理”,所以我需要删除X个第一个字符,而${string:5}
在我的系统中由于某种原因不起作用。如何使用sed从字符串中剥离第一个X字符?
该盒子似乎只有一个是sed
。
我想作以下工作:
result=`echo "$pid" | sed 's/^.\{4\}//g'`
任何想法?
我正在为小型工业机器中的嵌入式Linux编写shell脚本。我有一个变量,其中包含文本pid: 1234
,我想从行中去掉第一个X字符,因此只保留1234个字符。我有更多的变量需要“清理”,所以我需要删除X个第一个字符,而${string:5}
在我的系统中由于某种原因不起作用。如何使用sed从字符串中剥离第一个X字符?
该盒子似乎只有一个是sed
。
我想作以下工作:
result=`echo "$pid" | sed 's/^.\{4\}//g'`
任何想法?
这将做的工作太多:
echo "$pid"|awk '{print $2}'
有机会,你也有cut
。如果是这样的:
[[email protected]]$ echo "pid: 1234" | cut -d" " -f2
1234
下面应该工作:
var="pid: 1234"
var=${var:5}
确定bash
是执行你的脚本的壳呢?
工作过。 – 2015-01-14 23:11:01
这应该是被接受的答案! – ndmeiri 2016-05-13 22:33:03
通过awk '{print substr($0,42)}'
管道它,其中42是多于要丢弃的字符数。例如:
$ echo abcde| awk '{print substr($0,2)}'
bcde
$
下面是使用cut(1)
削减第一个X字符的简明方法。本示例删除前4个字符。
echo "$pid" | cut -c 4-
这是最简单的解决方案! – Brandon 2017-05-04 01:06:52
的另一种方法,使用cut
代替sed
。
result=`echo $pid | cut -c 5-`
他想删除前4个字符。这得到前4个字符。 – 2017-11-24 08:39:56
更改代码以使用剪切代替头部。 – Evgeny 2017-11-25 12:43:53
如果'$ {string:5}'不起作用,那么您没有使用Bash或其他支持该语法的shell。你使用的是什么外壳和版本?你的屁股是什么样的?我的猜测是你正在使用'sh'(比如'dash')或者可能'zsh'。 – 2012-07-13 12:43:59