Linuxで列形式のファイル内容を表示する

Linux Columnコマンドは区切られたテキストファイルで動作します

区切られたファイルをLinux端末に表示すると、区切られた各項目がそれぞれの列に表示されます。 たとえば、デリミタとしてパイプを使用するEnglish Premier League Footballテーブルの例を次に示します。

ポジション|チーム| pld | pts 1 | leicester | 31 | 66 2 | tottenham | 31 | 61 3 | arsenal | 30 | 55 4 | man city | 30 | 51 5 | west ham | 30 | 50 6 | man utd | 30 | 50 7 |サザンプトン| 31 | 47 8 |ストークシティ| 31 | 46 9 |リバプール| 29 | 44 10 |チェルシー| 30 | 41

このリストには、上位10チーム、その名前、プレイしたゲームの数、得点が含まれます。

コマンドラインでデータを表示するために使用できる多くのLinuxコマンドがあります。 たとえばcatコマンドは、ファイルに表示されているとおりにファイルを表示します。 tailコマンドは、 headコマンドのように、ファイルの一部またはすべてを表示するために使用できます。 ただし、これらのコマンドのいずれも、出力を見栄えのよい方法で表示しません。

理想的には、パイプ記号なしでデータを見ることができるようにしたいと考えています。 これは、 コマンドが入る場所です。

列コマンドの基本的な使用

次のように、パラメータを指定せずにcolumnコマンドを実行できます。

カラム

これは単語間のスペースを含む単語のファイルで最も効果的です。 このリーグテーブルの例のように、表形式のデータではうまく機能しません。

出力は次のとおりです。

pos | team | pld | pts 2 | tottenham | 31 | 61 4 | man city | 30 | 51 6 | man utd | 30 | 50 8 |ストークシティ| 31 | 46 10 | Chelsea | 30 | 41 1 | leicester | 31 | 66 3 |アーセナル| 30 | 55 5 |西ハム| 30 | 50 7 |サザンプトン| 31 | 47 9 |リバプール| 29 | 44

列幅の指定

列の幅がわかっている場合は、次のコマンドを使用して列を幅で区切ります。

列-c

たとえば、各列の幅が20文字であることがわかっている場合は、次のコマンドを使用できます。

列-c20

リーグテーブルの場合は、すべての列が特定の幅にならないとうまくいきません。 これを証明するには、次のようにリーグテーブルファイルを変更します。

ポジションチームpldポイント1レスター31 66 2トッテナム31 61 3アーセナル30 55 4マンチェスター30 51 5ウェストハム30 50 6マンチェスター30 50 7ソルトン31 47 8ストーク31 46 9リバプール29 44 10チェルシー30 41

今すぐ次のコマンドを使用すると、まともな出力を得ることができます:

列-c10リーグテーブル

この問題は、ファイル内のデータがすでに見栄えがよく、tail、head、 nano、またはcatコマンドがすべて同じ情報を許容可能な方法で表示できることにあります。

列コマンドを使用した区切り文字の指定

コンマ、パイプ、または区切り文字のファイルでcolumnコマンドを使用する最も良い方法は、次のとおりです。

column -s "|" -t

-sスイッチを使用すると、使用する区切り文字を指定できます。 たとえば、ファイルがコンマで区切られている場合は、-sの後に "、"を付けることができます。 -tスイッチは、データを表形式で表示します。

出力セパレータ

これまでの例では、入力ファイルの区切り文字を使用する方法を示しましたが、画面に表示されるときのデータはどうですか。

Linuxのデフォルトは2つのスペースですが、代わりに2つのコロンを使用することもできます。 次のコマンドは、出力セパレータを指定する方法を示しています。

column -s "|" -t -o "::"

リーグテーブルファイルと一緒に使用すると、次の出力が生成されます。

pos ::チーム:: pld :: pts 1 :: leicester :: 31 :: 66 2 :: tottenham :: 31 :: 61 3 :: arsenal :: 30 :: 55 4 :: man city :: 30 :: 51 5 :: west ham :: 30 :: 50 6 :: man utd :: 30 :: 50 7 :: southampton :: 31 :: 47 8 ::ストーク・シティ:: 31 :: 46 9 :: liverpool :: 29 :: 44 10 ::チェルシー:: 30 :: 41

列の前に行を塗りつぶす

特に有用ではないスイッチがありますが、ここには完全性のために含まれています。 -xスイッチを-cスイッチとともに使用すると、列の前に行が塗りつぶされます。

それはどういう意味ですか? 次の例を見てください:

列-c100リーグテーブル

これの出力は次のようになります。

リバースプール| 29 | 44 1 |レスター| 31 | 66 4 |マンチェスター| 30 | 51 7 |サザンプトン| 31 | 47 10 |チェルシー| 30 | 41 2 |トッテナム| 31 | 61 5 |西ハム| 30 | 50 8 |ストークシティ| 31 | 46

あなたが見ることができるように、それは最初に降りて行きます。

今この例を見てください:

列-c100-xリーグテーブル

今回の出力は次のようになります。

ポジション|チーム| pld | pts 1 | leicester | 31 | 66 2 | tottenham | 31 | 61 3 | arsenal | 30 | 55 4 | man city | 30 | 51 5 | west ham | 30 | 50 6 | man utd | 30 | 50 7 |サザンプトン| 31 | 47 8 |ストークシティ| 31 | 46 9 |リバプール| 29 | 44 10 |チェルシー| 30 | 41

データは画面を横切り、次に下に移動します。

その他のスイッチ

使用可能なその他のスイッチは次のとおりです。

列-V

これは、コンピュータにインストールされている列のバージョンを表示します。

column --help

これにより、端末ウィンドウへのマニュアルページが表示されます。