複数のパターンを角かっこで置き換え、他のパターンをタブに置き換えます。

複数のパターンを角かっこで置き換え、他のパターンをタブに置き換えます。

次の行を含むテキストファイルがあります。

[...]
GFX Clocks and Power:
    800 MHz (MCLK)
    26 MHz (SCLK)
[...]

一部(値が一定ではない)を抽出したいので、削除して使用したいと800 MHz思います。\t(MCLK)sed

これは私の現在のコマンドです。

$ cat ~/test.txt | grep "(MCLK)" | xargs -0 sed -i -e $'s/\t//g' -e 's/\(MCLK\)//g'

実行時に以下を返します。

sed: can't read     800 MHz (MCLK)
: No such file or directory

これは改行エラーでも\t非標準文字の問題でもないようですsed(参照。単純なsedタブの交換が奇妙に失敗する)を修正する必要があります。

何が問題なのでしょうか?

ベストアンサー1

あなたが持っている場合pgrep

grep -Po '[0-9]+ [KMGT]?Hz(?= \(MCLK\))' test.txt

おすすめ記事