我正在爲小型工業機器中的嵌入式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