dán các tập tin mà không có dấu phân cách


8

Làm cách nào để tham gia hai tệp theo chiều dọc mà không có dấu phân cách? Tôi đã cố gắng để sử dụng paste -d"" a b, nhưng điều này chỉ mang lại cho tôi a.

Tệp mẫu:

000    0   0   0
0001000200030004
  10  20  30  40
    2000    4000
            .123
            12.1
1234234534564567

1
Bạn có chắc chắn đây là những gì bạn nhận được? paste - d"" a bsẽ dán nội dung từ stdin, tập tin có tên d"", a, b.
cuonglm

@cuonglm typo ... đã sửa.
Tomas Greif

Bạn đã tắt bởi một nhân vật : paste -d "" a b.
G-Man nói 'Phục hồi Monica'

Câu trả lời:


14

pastesử dụng \0cho dấu phân cách null như được định nghĩa bởi POSIX :

paste -d'\0' file1 file2

Sử dụng -d"" a bcũng giống như -d a b: các pastechương trình thấy ba đối số -d, ab, mà làm adấu phân cách và btên của tập tin duy nhất để dán.

Nếu bạn đang sử dụng hệ thống GNU (Linux không nhúng, Cygwin, '), bạn có thể sử dụng:

paste -d "" file1 file2

Biểu mẫu -d ""không được chỉ định bởi POSIX và có thể tạo ra lỗi trong các nền tảng khác. Ít nhất BSD và gia truyền pastesẽ báo cáo không có lỗi phân cách .


3
Hãy cẩn thận khi cố gắng rút ra một cái gì đó từ hành vi từ các công cụ được gọi là "gia truyền". pastetừ bộ phần mềm này được viết bởi Gunnar Ritter và không liên quan đến các nguồn UNIX. Bourne Shell từ bộ phần mềm này có nguồn gốc từ OpenSolaris Bourne Shell, nhưng nó có lỗi do một cổng nhanh và hack cho những thiếu sót trong Linux ( ví dụ: triển khai chờ () không tương thích), kiểm tra (exec ps)để xác minh lỗi treo không có trong bản gốc và không có trong Bourne Shell di động của tôi.
schily

BTW: dán trên Solaris trước ~ tháng 4 năm 2010 gây ra lỗi "không phân cách" với paste -d '' file1 file2nhưng kể từ đó, dán là việc thực hiện dán được lấy từ David Korn và điều này cho phép -d "".
schily

@schily: Ý bạn là "xuất phát" là gì? Tôi đề cập đến gia truyền pastebởi vì tôi đã có nó và có thể thử nghiệm với nó, tôi không sử dụng nó cho "tiêu chuẩn" hoặc bất cứ điều gì khác.
cuonglm

@schily: Và tôi cũng đã thử nghiệm với Solaris 11, nó pastecũng không có lỗi phân địnhpaste -d "" .
cuonglm

Nhiều người tin rằng các công cụ có thương hiệu "gia truyền" là từ các nguồn UNIX gốc, nhưng dán gia truyền thì không.
schily

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.