我需要在bash腳本中提取字符串的子字符串。 這是 「回聲」 中的代碼:將BASH腳本白體字符中的提取子字符串視爲數字
echo "number:"
echo "$number"
echo "bb"
registers3=$(echo $number | grep -o -E '[0-9]+')
registers2="$(grep -oE '[0-9]+' <<< "$number")"
registers="${number//[^0-9]/}"
valor=$(grep -o "[0-9]" <<<"$number")
echo "valor:"
echo $valor
echo "reg:"
echo "$registers"
echo "reg2:"
echo "$registers2"
echo "reg3:"
echo "$registers3"
而這種輸出:
number:
/> -------
420
/>
bb
valor:
1 0 3 4 4 2 0
reg:
1034420
reg2:
1034
420
reg3:
1034
420
問題是$號的特殊字符。
你能幫我只提取數字嗎?在這種情況下是「421」
謝謝!
編輯: 如果我把文件($號> file.txt的),並開放使用vi和$號:設置列表我得到:
^[[?1034h/ > -------$
420$
/> $
你的例子很混亂,特別是因爲你沒有在變量周圍使用引號(例如, 'echo「$ number」'),所以輸出被破壞。說實話,看起來好像主要問題是你在做'echo $ number |' grep'而不是'echo「$ number」| grep'。 –
謝謝Tom幫忙。我用引號編輯mi帖子:) –