私は変換しようとしています:
pid 2928's current affinity list: 0-3 pid 2928's new affinity list: 0
に
2928: 0-3 --> 0
現時点では、適切に機能する次の変換があります。
正規表現:pid
出力:2928's current affinity list: 0-3 2928's new affinity list: 0
正規表現:'s current affinity list
出力:2928: 0-3 2928's new affinity list: 0
そして、適切に機能していない最後の正規表現は次のとおりです。
正規表現:(\d+)(.)(.)(.)((?:[a-z][a-z]+))(\s+)((?:[a-z][a-z]+))(\s+)((?:[a-z][a-z]+))
出力:2928: 0-3 2928's new affinity list: 0
ご覧のとおり、正規表現が正しく適用されていません。この正規表現をオンライン テスターでテストすると、削除に適した領域が選択されていることがわかります。
完全なコマンド:
echo "pid 2928's current affinity list: 0-3 pid 2928's new affinity list: 0" | sed -e "s/pid //g" -e "s/'s current affinity list//g" -e "s/(\d+)(.)(.)(.)((?:[a-z][a-z]+))(\s+)((?:[a-z][a-z]+))(\s+)((?:[a-z][a-z]+))/-->/gim"
-e
sedの3番目で正規表現を正しく実行してはいけません。これは何か間違っているように見えますか?