私のスクリプトの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
(現在のスクリプトが何をしているのか)。どんなアイデアがありますか?ありがとうございます!
答え1
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
答え2
出力を列にソートするには、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
...
答え3
ファイルを2つの部分(同じ行数または最初のファイルに1行以上)に分割し、次のことができます。
paste file1 file2
行の長さが多すぎる場合は、printfを使用してスペースを埋めて長さを調整する必要があります。
答え4
以下を簡単に使用できますcolumns
。
$ cat test.txt | columns
A aldkhasdfljhaf B klajsdfhalsdfh C salkjsdjkladdag
D lseuiorlhisnflkc E sdjklfhnslkdfhn F kjhnakjshddnaskjdh
メモ:このコマンドは私のFedora 14システムパッケージの一部ですcolumns
。autogen
$ rpm -qf /usr/bin/columns
autogen-5.9.4-7.fc12.x86_64