Shell
為什麼粘貼命令會截斷輸入文件之一?
我有兩個文件,每個文件只包含一列數字數據,並且行數相同。使用時
paste
,它確實將兩個文件中的行合併為一行,但第一個文件的文本被截斷,而第二個文件的文本完好無損:$ 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
?
應該沒有限制。只是至少您的第一個輸入文件具有 DOS/Windows 樣式的 CRLF 行結尾,其中輸入符 (CR) 在分隔 TAB 和列印下一個值之前將游標位置返回到行首。請注意第二個文件中的值是如何從第一個製表位的位置 8 開始的。
實際輸出是這樣的:
-0.023193359375<CR><TAB>-0.018707275391<NL>
如果您使用 eg 查看輸出,則可以對其進行驗證
od -c
,它應該\r
在此處顯示 CR。執行文件或輸出
tr -d '\r'
以刪除 CR。(或dos2unix
任何其他各種方式。)