1
我试图让sed
输出它在一行文本中看到的第一个数字。下面是我使用的命令:为什么sed会将此替换的结果评估为8?
sed 's/.*\([0-9]\+\).*/\1/g'
据我了解,应该告诉sed
采取从标准输入,跳过一串字符,直到它击中了许多,比赛和捕获1或更多字符号码,然后跳过该行中的其余字符。然而,这并不成立,当我通过它试图管道的东西:
[email protected] MINGW64 ~/Code/git/corefx (sparse-array-builder)
$ tasklist | grep VBCSCompiler
VBCSCompiler.exe 11080 Console 33 155,944 K
[email protected] MINGW64 ~/Code/git/corefx (sparse-array-builder)
$ tasklist | grep VBCSCompiler | sed 's/.*\([0-9]\+\).*/\1/g'
8
我希望第二个命令的输出为11080
,但它是8
。为什么会发生这种情况,因为8甚至不是输入中的第一个或最后一个数字,并且与一组也匹配的字符组合在一起?另外,在这里使用正确的正则表达式是什么?
感谢您的帮助。
天色已晚,当我回答了这个:)它不对结果产生影响,但我仍会更新。 –