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甚至不是輸入中的第一個或最後一個數字,並且與一組也匹配的字符組合在一起?另外,在這裏使用正確的正則表達式是什麼?
感謝您的幫助。
天色已晚,當我回答了這個:)它不對結果產生影響,但我仍會更新。 –