我需要在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帖子:) –