Linuxでコマンドラインを操作しているときに、ファイルの内容を列形式で表示したい場合があります。 Linuxには、これを実行できるコマンドラインユーティリティがあることを知って喜ぶでしょう。ツールの名前はcolumnです。わかりやすい例を使用して、このコマンドの基本について説明します。
ただし、その前に、ここでのすべての例がUbuntu18.04LTSマシンでテストされていることを言及する価値があります。
Linux列コマンド
Linuxのcolumnコマンドを使用すると、リストを列に並べることができます。その構文は次のとおりです。
column [-entx] [-c columns] [-s sep] [file ...]
そして、ツールのマニュアルページでそれを定義する方法は次のとおりです。
The column utility formats its input into multiple columns. Rows are
filled before columns. Input is taken from file operands, or, by
default, from the standard input.
以下は、列コマンドがどのように機能するかについてのより良いアイデアを与えるはずのいくつかのQ&Aスタイルの例です。
Q1。列コマンドの使用方法は?
基本的な使い方はとても簡単です。次の情報を含む「test.txt」という名前のファイルがあるとします。
1
2
3
4
5
6
7
8
9
10
ここで、このファイルの内容を列に並べるには、次のようにcolumnコマンドを使用します。
column test.txt
そして、次のような出力が得られます:
1 2 3 4 5 6 7 8 9 10
Q2。区切られた出力を列化するにはどうすればよいですか?
ファイルに次の内容が含まれているとします。
No.|Country|Yes/No
01|India|Y
02|US|Y
03|Australia|Y
04|China|N
05|Russia|Y
06|Japan|Y
07|Singapore|Y
08|South Korea|N
09|Finaland|Y
10|Ireland|Y
次に、次の方法でcolumnコマンドを実行します。
column test.txt -t -s "|"
そして、生成される出力は次のとおりです。
No. Country Yes/No
01 India Y
02 US Y
03 Australia Y
04 China N
05 Russia Y
06 Japan Y
07 Singpaore Y
08 South Korea N
09 Finaland Y
10 Ireland Y
参考までに、列コマンドのマニュアルページで-tおよび-sコマンドラインオプションについて説明します。
-s Specify a set of characters to be used to delimit columns for the
-t option.
-t Determine the number of columns the input contains and create a
table. Columns are delimited with whitespace, by default, or
with the characters supplied using the -s option. Useful for
pretty-printing displays.
Q3。複数の区切り文字がある場合はどうですか?
前の例では、元のコンテンツにパイプ'|'が含まれているのを見ました。区切り文字として。そのため、columnコマンドはこの区切り文字を使用して列形式の出力を生成しました。しかし、一部のエントリに2つのパイプがあった場合はどうなりますか。たとえば、ここの最初の行を参照してください:
No.||Country||Yes/No
01|India|Y
02|US|Y
03|Australia|Y
04|China|N
05|Russia|Y
06|Japan|Y
07|Singpaore|Y
08|South Korea|N
09|Finland|Y
10|Ireland|Y
デフォルトでは、columnコマンドは複数の隣接する区切り文字を1つの区切り文字にマージします。ただし、必要に応じて、-nコマンドラインオプションを使用してその動作を無効にすることができます。したがって、その場合、列コマンドは次のようになります。
column -n test.txt -t -s "|"
Q4。列コマンドは空の行をどのように処理しますか?
デフォルトでは、空の行はcolumnコマンドによって無視されます。ただし、必要に応じて、-eコマンドラインオプションを使用してこの動作を抑制することができます。
たとえば、ファイルの内容は次のようになります:
No.|Country|Yes/No
01|India|Y
02|US|Y
03|Australia|Y
04|China|N
05|Russia|Y
06|Japan|Y
07|Singapore|Y
08|South Korea|N
09|Finland|Y
10|Ireland|Y
次のようになります:
No. Country Yes/No
01 India Y
02 US Y
03 Australia Y
04 China N
05 Russia Y
06 Japan Y
07 Singapore Y
08 South Korea N
09 Finland Y
10 Ireland Y
次のコマンドを使用します:
column -e test.txt -t -s "|"
Linuxコマンドラインで行う作業の種類によっては、columnコマンドが非常に役立つ場合があります。このチュートリアルでは、ツールが提供する多数のオプションについて説明しました。詳細については、manページにアクセスしてください。