スクリプトの1つからの出力を列にまとめる単純なユーティリティまたはスクリプトはありますか?私は何らかの形でデータを持っています:
A aldkhasdfljhaf
B klajsdfhalsdfh
C salkjsdjkladdag
D lseuiorlhisnflkc
E sdjklfhnslkdfhn
F kjhnakjshddnaskjdh
しかし、これが2つ長くなる場合は、次の形式でデータを書き込みます(まだ垂直方向に並べられています)。
A aldkhasdfljhaf D lseuiorlhisnflkc
B klajsdfhalsdfh E sdjklfhnslkdfhn
C salkjsdjkladdag F kjhnakjshddnaskjdh
マンページを読んで、これがcolumn
が適切であるとは思わないが、よくわからない。次の形式で分割するのは簡単です。
A B
C D
E F
印刷のみ\n
2行ごと(現在のスクリプトは何をしているのか)。何か案は?ありがとう!
column
はあなたが望んでいるようです:
$ cat file
A aldkhasdfljhaf
B klajsdfhalsdfh
C salkjsdjkladdag
D lseuiorlhisnflkc
E sdjklfhnslkdfhn
$ column file
A aldkhasdfljhaf D lseuiorlhisnflkc
B klajsdfhalsdfh E sdjklfhnslkdfhn
C salkjsdjkladdag F kjhnakjshddnaskjdh
出力を列化するために、pr
はテキストファイルを印刷用に変換します。
-COLUMN, --columns=COLUMN: output COLUMN columns
and print columns down, unless -a is used.
-t, --omit-header : omit page headers and trailers
例えば.
ls /etc | pr -2 -t
abrt gtk-2.0
acpi hal
adjtime hba.conf
agent.properties Host.conf
aliases hosts
aliases.db hosts.allow
...
ファイルを2つに分割して(同じ行数または最初のファイルに1行以上)、次のように実行できます。
paste file1 file2
行の長さが非常に異なる場合は、printfを使用して、スペースでパディングして長さを調整する必要がある場合があります。
単純なcolumns
を使用できます:
$ cat test.txt | columns
A aldkhasdfljhaf B klajsdfhalsdfh C salkjsdjkladdag
D lseuiorlhisnflkc E sdjklfhnslkdfhn F kjhnakjshddnaskjdh
注:columns
コマンドは、私のFedora 14システムのautogen
パッケージの一部です。
$ rpm -qf /usr/bin/columns
autogen-5.9.4-7.fc12.x86_64