GNU/Linux >> Linux の 問題 >  >> Linux

2 つのファイルを並べて表示する

入力ファイルにタブがないことがわかっている場合は、 expand を使用します @oyss の回答を簡略化します:

paste one.txt two.txt | expand --tabs=50

入力ファイルにタブがある可能性がある場合は、いつでも最初に展開できます:

paste <(expand one.txt) <(expand two.txt) | expand --tabs=50

pr を使用できます これを行うには、-m を使用します ファイルをマージするためのフラグ、列ごとに 1 つ、および -t ヘッダーを省略します。例:

pr -m -t one.txt two.txt

出力:

apple                               The quick brown fox..
pear                                foo
longer line than the last two       bar
last line                           linux

                                    skipped a line

関連項目:

  • コマンドの結果を並べて表示
  • テキスト ファイルを列単位で結合

@Hasturkun の回答を少し拡張するには:デフォルトで pr は出力に 72 列しか使用しませんが、端末ウィンドウの使用可能なすべての列を使用するのは比較的簡単です:

pr -w $COLUMNS -m -t one.txt two.txt

ほとんどのシェルは (および更新) を保存します $COLUMNS での端末の画面幅 シェル変数なので、その値を pr に渡すだけです 出力の幅設定に使用します。

これは @Matt の質問にも答えます:

<ブロック引用>

pr が画面幅を自動検出する方法はありますか?

いいえ:pr それ自体は画面幅を検出できませんが、 -w を介して端末の幅を渡すことで少し助けています オプション。

$COLUMNS に注意してください 環境変数ではなくシェル変数であるため、子プロセスにはエクスポートされません。したがって、上記のアプローチはスクリプトでは機能せず、インタラクティブな TTY でのみ機能する可能性があります...スクリプトで失われた LINES および COLUMNS 環境変数を参照してください代替アプローチ


Linux
  1. 2つのファイルを2つの列に印刷しますか?

  2. 重複ファイルを見つけますか?

  3. 2 つのファイルを 1 行ずつ一貫してマージする方法

  1. Linuxで2つのテキストファイルを結合する方法

  2. 複数のファイルの拡張子を変更するにはどうすればよいですか?

  3. 2つのテキストファイル(差分の反対側)の共通行(類似点)を出力しますか?

  1. ディレクトリ付きの猫ファイル?

  2. 2つのファイル間の共通行?

  3. Linuxでfdコマンドを使用してファイルを検索する方法