複数の半角スペースをタブに置換する方法

スポンサーリンク

はじめに

Linuxなどでプロセスやリソースの状態を確認した時、結果をExcelファイルとして保存したいことがあります。この時、そのままコピペするのではなくカラムごとに整えて保存したいです。

例えば、psコマンドの結果が以下だったとします。

[root@centos7-zm4-1 ~]# ps -aux --sort -%cpu | head -n 10
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
mysql      1034  1.9 42.3 1329408 421980 ?      Ssl  23:25   0:11 /usr/sbin/mysqld
root         25  0.2  0.0      0     0 ?        S    23:25   0:01 [kworker/0:1]
root          1  0.1  0.3 125516  3948 ?        Ss   23:25   0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root        659  0.1  0.6 305620  6652 ?        Rsl  23:25   0:00 /usr/bin/vmtoolsd
root        660  0.1  0.3  90568  3200 ?        Rs   23:25   0:01 /sbin/rngd -f
root          2  0.0  0.0      0     0 ?        S    23:25   0:00 [kthreadd]
root          4  0.0  0.0      0     0 ?        S<   23:25   0:00 [kworker/0:0H]
root          5  0.0  0.0      0     0 ?        S    23:25   0:00 [kworker/u256:0]
root          6  0.0  0.0      0     0 ?        S    23:25   0:00 [ksoftirqd/0]

この結果をそのままExcelに貼り付けるとA列だけに貼り付けられます。

結果は画像のように列単位で保存したいので対応方法をご紹介します。

対応方法

テキストエディタから正規表現を使って置換します。管理人は「EmEditor」を使用していますが、正規表現が使用できるテキストエディタであれば何でも良いです。

テキストエディタにコマンドの結果を貼り付けます。

「Ctrl + H」キーで置換画面を表示します。検索する文字列に「 +」(半角スペースとプラス記号)、置換後の文字列に「\t」(エンマークとアルファベットのt)を入力します。「すべて置換」ボタンをクリックします。

複数の半角スペースがタブに置換されます。

この結果をコピーし、Excelに貼り付けます。これでカラムごとに貼り付けできます。

最後のCOMMANDのカラムは、半角スペースが含まれていたので分離してしまいました。ここは個別に修正する必要があります。このようにカラムを整えると見やすいし、データ加工がしやすいのでオススメです。

コメント

タイトルとURLをコピーしました