貼り付けによる奇妙な動作

貼り付けによる奇妙な動作

貼り付けツールを使用すると、奇妙な動作が発生します。何らかの理由で2つの特定のファイルでは動作しないようですが、他のファイルでは動作を再現できません。

最初のファイル:

$ cat file1
20.623 40.276 -1.999 -1031 127 141 154
20.362 40.375 -2.239 -941 130 141 159
20.36 40.376 -2.402 -1083 139 151 165
20.374 40.367 -2.405 -1122 131 147 163
20.372 40.366 -2.405 -1165 132 145 161
20.375 40.364 -2.404 -1036 133 149 165
20.358 40.371 -2.405 -1137 139 151 165
20.359 40.374 -2.404 -1086 139 151 165
20.354 40.375 -2.404 -1106 139 148 163
20.356 40.374 -2.404 -1059 139 151 165

2番目のファイル:

$ cat file2
-1
-1
2
-1
-1
-1
-1
2
2
2

これで、貼り付けは次の呼び出し後に期待されるアクションを実行します。

$ paste file2 file1
-1  20.623 40.276 -1.999 -1031 127 141 154
-1  20.362 40.375 -2.239 -941 130 141 159
2   20.36 40.376 -2.402 -1083 139 151 165
-1  20.374 40.367 -2.405 -1122 131 147 163
-1  20.372 40.366 -2.405 -1165 132 145 161
-1  20.375 40.364 -2.404 -1036 133 149 165
-1  20.358 40.371 -2.405 -1137 139 151 165
2   20.359 40.374 -2.404 -1086 139 151 165
2   20.354 40.375 -2.404 -1106 139 148 163
2   20.356 40.374 -2.404 -1059 139 151 165

ただし、パラメータを切り替えると、行を連結するのではなく、何らかの方法でマージして結果行が生成されます。

$ paste file1 file2
20.623 4-1276 -1.999 -1031 127 141 154
20.362 4-1375 -2.239 -941 130 141 159
20.36 402376 -2.402 -1083 139 151 165
20.374 4-1367 -2.405 -1122 131 147 163
20.372 4-1366 -2.405 -1165 132 145 161
20.375 4-1364 -2.404 -1036 133 149 165
20.358 4-1371 -2.405 -1137 139 151 165
20.359 42.374 -2.404 -1086 139 151 165
20.354 42.375 -2.404 -1106 139 148 163
20.356 42.374 -2.404 -1059 139 151 165

2番目の数字は混乱しています。さらに奇妙なことは、ペーストが期待どおりに機能することです。

$ cat test1
5 5 5 5
6 6 6 6
$ cat test2
-2
-7
$ paste test2 test1
-2  5 5 5 5
-7  6 6 6 6
$ paste test1 test2
5 5 5 5 -2
6 6 6 6 -7

マニュアルページはトラブルシューティングには役立ちません。私が達成したい仕事の説明と助けがありますか?

ベストアンサー1

実際にこの動作を引き起こすのは Windows 改行文字です。走った後

sed $'s/\r//' -i file1

これを置き換えるには、貼り付けは期待どおりに機能します。正しい方向を教えてくれたSteeldriverに感謝します。別の解決策は、次のものを使用することです。

dos2unix file1 

おすすめ記事