コマンド出力またはファイルの内容を列形式で表示する


端末上でコマンドの輻輳出力やファイルの内容を表示するのにうんざりしていませんか。この短い記事では、コマンド出力またはファイルの内容を明確な「列区切り」形式で表示する方法について説明します。

ユーティリティを使用すると、標準入力またはファイルのコンテンツを複数列の表形式に変換して、出力を明確にすることができます。

より明確に理解するために、私達はトップ10の著者名のリスト、書かれた記事の数、そして彼らが今までに彼らが受け取ったコメントの数を含む以下のファイル「 tecmint-authors.txt 」を作成しました。 。

これを実証するには、以下のcatコマンドを実行して tecmint-authors.txt ファイルを表示します。

$ cat tecmint-authors.txt
pos|author|articles|comments
1|ravisaive|431|9785
2|aaronkili|369|7894
3|avishek|194|2349
4|cezarmatei|172|3256
5|gacanepa|165|2378
6|marintodorov|44|144
7|babin lonston|40|457
8|hannyhelal|30|367
9|gunjit kher|20|156
10|jesseafolabi|12|89

columnコマンドを使用すると、次のように明確な出力を表示できます。 -t は、入力に含まれる列の数を判断して表を作成し、 code> -s は区切り文字を指定します。

$ cat tecmint-authors.txt  | column -t -s "|"
pos  author         articles  comments
1    ravisaive      431       9785
2    aaronkili      369       7894
3    avishek        194       2349
4    cezarmatei     172       3256
5    gacanepa       165       2378
6    marintodorov   44        144
7    babin lonston  40        457
8    hannyhelal     30        367
9    gunjit kher    20        156
10   jesseafolabi   12        89

デフォルトでは、は列の前に入力され、行を入力する前に列を入力するには -x スイッチを使用し、列コマンドは空行を考慮する -e フラグを含めます。

これがもう一つの実用的な例です、以下の2つのコマンドを実行して、マジックコラムができることをさらに理解するために違いを見てください

$ mount
$ mount | column -t
sysfs        on  /sys                             type  sysfs            (rw,nosuid,nodev,noexec,relatime)
proc         on  /proc                            type  proc             (rw,nosuid,nodev,noexec,relatime)
udev         on  /dev                             type  devtmpfs         (rw,nosuid,relatime,size=4013172k,nr_inodes=1003293,mode=755)
devpts       on  /dev/pts                         type  devpts           (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs        on  /run                             type  tmpfs            (rw,nosuid,noexec,relatime,size=806904k,mode=755)
/dev/sda10   on  /                                type  ext4             (rw,relatime,errors=remount-ro,data=ordered)
securityfs   on  /sys/kernel/security             type  securityfs       (rw,nosuid,nodev,noexec,relatime)
tmpfs        on  /dev/shm                         type  tmpfs            (rw,nosuid,nodev)
tmpfs        on  /run/lock                        type  tmpfs            (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs        on  /sys/fs/cgroup                   type  tmpfs            (rw,mode=755)
cgroup       on  /sys/fs/cgroup/systemd           type  cgroup           (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/
....

うまくフォーマットされた出力をファイルに保存するには、図のように出力リダイレクトを使用します。

$ mount | column -t >mount.out

詳細については、columnsのmanページを参照してください。

$ man column 

以下の関連記事も読んでください。

  1. How to Use Awk and Regular Expressions to Filter Text or String in Files
  2. How to Find and Sort Files Based on Modification Date and Time in Linux
  3. 11 Advanced Linux ‘Grep’ Commands on Character Classes and Bracket Expressions

ご質問がある場合は、下記のコメントフォームを使用してご連絡ください。 Linuxで便利なコマンドラインのヒントやテクニックを私たちと共有することもできます。