私はsed
に、テキスト行に表示される最初の数字を出力しようとしています。標準入力からの入力を取る、それは数に達するまでの文字の束をスキップし、一致しているの1つの以上の文字をキャプチャするsed
を教えてくださいなぜsedはこの置換の結果を8と評価しますか?
sed 's/.*\([0-9]\+\).*/\1/g'
を私の理解には、:ここで私が使用しているコマンドがあります行の残りの文字をスキップします。しかし、私はそれを介してパイプに何かしようとすると、これはホールドアップしません:
[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
私は2番目のコマンドの出力は11080
ことが期待が、それは8
です。 8が入力の最初の数字でも最後の数字でもなく、一揃いの文字と一緒にグループ化されているので、なぜこれが起こりますか?また、ここで正しいregexpは何でしょうか?
ありがとうございます。
結果に差をつけてください、とにかく私は更新します。 –