2つのファイルがあり、各ファイルには1つの数値データ列しか含まれておらず、行数は同じです。を使用すると、paste
2つのファイルの行が1つにマージされますが、最初のファイルのテキストは切り捨てられ、2番目のファイルのテキストは変更されません。
$ head -3 s1_.dat s2_.dat
==> s1_.dat <==
-0.023193359375
-0.020416259766
0.014587402344
==> s2_.dat <==
-0.018707275391
-0.019805908203
0.011108398438
$ paste s1_.dat s2_.dat | head -3
-0.02319-0.018707275391
-0.02041-0.019805908203
0.0145870.011108398438
に列幅制限がありますかpaste
?
答え1
制限はありません。少なくとも最初の入力ファイルには、DOS / WindowsスタイルのCRLF行末があります。ここで、キャリッジリターン(CR)は、区切りTABと次の値を印刷する前にカーソル位置を行の先頭に返します。 2番目のファイルの値が最初のタブ停止位置8でどのように始まるかを確認してください。
実際の出力は次のとおりです。
-0.023193359375<CR><TAB>-0.018707275391<NL>
たとえば、出力を表示するために使用している場合はこれを確認でき、そこにCRがod -c
表示されます。\r
CRを削除するには、ファイルまたは出力を実行しますtr -d '\r'
。 (またはdos2unix
他のさまざまな方法。)