pr -m -t file1 file2
私はこれが2つの列を提供することを知っています。
ファイル1:
a
abc
abcdefg
abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz
ファイル2:
1
123
12345678
12345678901234567890
-
$ pr -m -t file1 file2
a 1
abc 123
abcdefg 12345678
abcdefghijklmnopqrstuvwxyzabcdefghi 12345678901234567890
上記は文字通りカットして貼り付けたものですが、ここでは端末で実際にどのように配置されているかを示すためにスペースを追加しました。
$ pr -m -t file1 file2
a 1
abc 123
abcdefg 12345678
abcdefghijklmnopqrstuvwxyzabcdefghi 12345678901234567890
何らかの理由で、unix
スタック交換はコードブロックを堅牢にしません。とにかく行番号の一致は必要ありません(ただし、一般的な質問に答えるにはどうすればよいか答えることができます)。しかし、私が望む主な属性は、行番号を切り捨てるのではなく改行することです。各ファイルを特定の幅に前処理し、パイプで接続する以外に選択肢はありませんか?では、どうすればよいですか?
command
更新:ファイルの幅を制限し、改行を強制する方法がある場合は、次のようにします。pr -m -t <(command file1) <(command file2)
答え1
編集する:
並べ替えが心配ですか?
Perlスクリプトをインポートして見つけたらここ、作成者ピーター・シュトゥイザンダーcolumnFix.perl
、名前を指定しますchmod u+x columnFix.perl
(実行できることを確認するには、次の手順を実行します。
pr -J -m -t file1 file2 | /path/to/columnFix.perl
元の答え:
Iバージョンはpr
デフォルトで行を72文字に切り捨てます。 2つの列は最初の列を35文字に切り捨てます(35 char/column * 2 columns) + 1 char/separator = 71 characters
(したがって2列目は36文字にすることができます)。
したがって、同意する場合は、実行しているのと同じコマンドを使用して、探しているように見える-J
操作を実行する必要があります(元のコマンドにできるだけ近い)。列の並べ替えなし(コメントで提案した貼り付けコマンドの結果と似ています)
pr -J -m -t file1 file2
マニュアルページから:
-J、--接続線
行全体をマージし、-W行切り捨てをオフにし、列の並べ替えなし, --sep-string[=STRING] 区切り記号の設定