Đầu ra XXD không ngắt dòng


12

Tôi có thể yêu xxdcầu không in bất kỳ ngắt dòng nào trong đầu ra của nó và có kết xuất của tôi dưới dạng một dòng liên tục không?

[user@localhost] : ~ $ echo -n "this is a long line and xxd is going to take multiple lines to print it" | xxd -p
746869732069732061206c6f6e67206c696e6520616e6420787864206973
20676f696e6720746f2074616b65206d756c7469706c65206c696e657320
746f207072696e74206974

5
Bạn chỉ có thể sử dụng trđể xóa các dòng mới, ví dụ như... | xxd -p | tr -d \\n
don_crissti

Nó phụ thuộc vào những gì bạn cần nó, nhưng một lựa chọn tiện dụng xxdlà nó bỏ qua khoảng trắng để đảo ngược -rdấu bưu điện / -pkết xuất đơn giản của nó (hoặc bất kỳ hexdump đơn giản nào cho vấn đề đó). ví dụ. Dòng sau kết hợp với \n, nhưng đầu ra đảo ngược chính xác là đầu vào: echo {1..14} | xxd -p | xxd -p -rtạo đầu ra: 1 2 3 4 5 6 7 8 9 10 11 12 13 14\n - \nlà từecho
Peter.O

1
Bạn cũng có thể sử dụng hexdump -v -e '/1 "%02X"'thay vì xxd.
dirkt

Câu trả lời:


14

Những gì bạn cần là tùy chọn -c.

# echo -n "this is a long line and xxd will print it as one line" | xxd -p -c 1000000

746869732069732061206c6f6e67206c696e6520616e64207878642077696c6c207072696e74206974206173206f6e65206c696e65

Dưới đây là một số thông tin từ tài liệu :

-c cols | -cols cols định dạng octet trên mỗi dòng. Mặc định 16 (-i: 12, -ps: 30, -b: 6). Tối đa 256.

Tài liệu nói rằng giá trị tối đa cho tham số "c" là 256, nhưng tôi đã thử các giá trị lớn hơn và nó đã hoạt động. Kiểm tra xem nó:

# xxd -c 1000000 -p -l 1000000 /dev/urandom | wc -c
2000001

Ở đây tôi kết xuất một triệu byte từ / dev / ngẫu nhiên và tôi nhận được chuỗi 2 triệu + 1 ký tự. Mỗi byte từ / dev / ngẫu nhiên được biểu thị bằng 2 ký tự và byte bổ sung là dòng mới cuối cùng.

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.