我需要在bash脚本中提取字符串的子字符串。 这是带有“echos”的代码:
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
问题是$ number的特殊字符。
你可以帮我提取数字吗?在这种情况下是“421”感谢!!!
编辑: 如果我将$ number放入文件($ number&gt; file.txt)并使用vi打开:set list i get:
^[[?1034h/ > -------$
420$
/ > $
答案 0 :(得分:1)
而不是:
registers=$(echo $number | grep -o -E '[0-9]+')
试试这个:
registers="$(grep -oE '[0-9]+' <<< "$number")"
甚至更好,这一个:
registers="${number//[^0-9]/}"