colrm tips

テキストファイルから指定の桁を抽出する方法を示します。
例として、実用的な意味はないのですが、psコマンドの出力の9桁目から15桁目と43桁目から50桁目を抽出します。psコマンドの出力例を示します。
[naota@seiko ‾/Sample]
$ ps -f
UID        PID  PPID  C    STIME TTY          TIME CMD
naota     1699  1698  0    20:32 pts/2    00:00:00 -csh -i
naota     1760  1699  0    20:33 pts/2    00:00:00 ps -f

Unixのcolrmコマンドを使う方法

colrmはcolumn removeの略で、指定された桁を取り除くコマンドです。一般的な使い方は、次の通りです。
colrm start_column_to_remove end_column_to_remove
では、psコマンドの出力から、52桁目以降を取り除いてみましょう。
[naota@seiko ‾/Sample]$ ps -f | colrm 50
UID PID PPID C STIME TTY TIME naota 1699 1698 0 20:32 pts/2 00:00:00 naota 1761 1699 0 20:33 pts/2 00:00:00 naota 1762 1699 0 20:33 pts/2 00:00:00
パイプラインを使って、目的の桁だけを抽出してみましょう。
[naota@seiko ‾/Sample]$ ps -f | colrm 51 | colrm 16 42 | colrm 1 8
                 PID    TIME
                 1699 00:00:00
                 1766 00:00:00
                 1767 00:00:00
                 1768 00:00:00
                 1769 00:00:00

awkを使う方法

awkは、開発者のエイホ氏、ワインバーガー氏、カーニハン氏の頭文字から名付けられた言語で、多くの機能がありますが、区切り文字、特に指定しないと空白またはタブで区切られたテキストファイルから、簡単に指定のフィールドを抽出できます。
[naota@seiko ‾/Sample]$ ps -f | awk '{print $2" "$7}'
               PID TIME
               1699 00:00:00
               1773 00:00:00
               1774 00:00:00

perlを使う方法

perlはラリー・ウォール氏によって開発された言語で、山のように多くの機能があり、awkでできることはperlでもできます。
[naota@seiko ‾/Sample]$ ps -f | perl -n -a -e 'print "$F[2] $F[6]¥n";'
                PID TIME
               1699 00:00:00
               1783 00:00:00
               1784 00:00:00

(C) 2003 石川直太 無保証
Linux tips に[戻る]
Tips に[戻る]
石川直太のホームページに[戻る]