lệnh tách trên dòng lệnh Ubuntu


1

Tôi muốn chia một tệp thành nhiều tệp với tối đa 25 dòng mỗi tệp.

Tôi đang sử dụng cái này:

split -l 25 /etc/adduser.conf > /home/ubuntu/PL/trab3/rc_

Nhưng tôi không nhận được các tập tin tôi mong đợi.

Làm cách nào tôi có thể nhận được các tệp có tên tệp như RC_01, rc_02, v.v.?

Câu trả lời:


8

Chuyển hướng ( >dấu hiệu) được xử lý bởi shell và nó chỉ có thể xuất ra một tệp duy nhất, tệp bạn đặt tên. Bỏ qua >, do đó /home/ubuntu/PL/trab3/rc_được chuyển đến splitlàm đối số dòng lệnh, để nó có thể sử dụng đó làm tiền tố đầu ra.


9
Tái bút: Thay vì chỉ nói rằng một cái gì đó "không hoạt động", tốt hơn là nói điều gì xảy ra ... bạn nhận được thông báo lỗi gì, điều gì xảy ra mà bạn không mong đợi, điều gì không xảy ra với bạn mong vv
coneslayer

split --helpcũng sẽ giúp
laconbass

1

Split không hỗ trợ hậu tố cho tên tệp đầu ra. AFAIK nó chỉ hỗ trợ tiền tố. Đối với tệp văn bản, bạn có thể thử awk:

awk 'NR% 25 == 1 {i + = 1; file = "/ home / ubfox / PL / trab3 / rc" "_" sprintf ("% 02d", i)} {print> file}' / etc / adduser .

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.