列別にテキストファイルをグループ化

列別にテキストファイルをグループ化

2つのテキストファイルがあります。最初の内容は次のとおりです。

Languages
Recursively enumerable
Regular

そして二番目の内容はこうです。

Minimal automaton
Turing machine
Finite

列ごとに1つのファイルにマージしたいです。だから試してみましたが、paste 1 2結果は次のとおりです。

Languages   Minimal automaton
Recursively enumerable  Turing machine
Regular Finite

しかし、列をうまく整列したいです。

Languages               Minimal automaton
Recursively enumerable  Turing machine
Regular                 Finite

手動で行わずにこれを達成できるかどうか疑問に思います。


次に追加:

いくつかのソートエラーを除いて、ブルースのアプローチがほとんど効果があった別の例がありますが、その理由は何ですか?

$ cat 1
Chomsky hierarchy
Type-0

$ cat 2
Grammars
Unrestricted

$ paste 1 2 | pr -t -e20
Chomsky hierarchy   Grammars
Type-0              Unrestricted
—                    (no common name)

ベストアンサー1

あなたはただ必要ですcolumnコマンドを実行し、タブを使用して列を区切るように指示します。

paste file1 file2 | column -s $'\t' -t

「空のセル」の議論を解決するには、次の-nオプションのみが必要ですcolumn

$ paste <(echo foo; echo; echo barbarbar) <(seq 3) | column -s $'\t' -t
foo        1
2
barbarbar  3

$ paste <(echo foo; echo; echo barbarbar) <(seq 3) | column -s $'\t' -tn
foo        1
           2
barbarbar  3

私のコラムのマニュアルページには-n「Debian GNU/Linux Extensions」と記載されています。私のFedoraシステムには空のデバイスの問題はありません。 BSDで発生したようで、マニュアルページに「バージョン2.23で-sオプションをnon-greedyに変更しました」と表示されています。

おすすめ記事