Tôi muốn biết tôi có thể sử dụng mẫu nào trong sed để thay đổi dòng đầu tiên của các tệp lớn (~ 2 GB). Ưu tiên cho sed là chỉ vì tôi cho rằng nó phải nhanh hơn một kịch bản Python hoặc Perl.Làm cách nào để thay đổi chỉ dòng đầu tiên của tệp?
Các tập tin có cấu trúc sau:
field 1, field 2, ... field n
data
và với khả năng có khoảng trống trong các định danh cho mỗi lĩnh vực, tôi cần phải thay thế tất cả các không gian bằng một dấu gạch theo cách này:
**BEFORE**
the first name,the second name,the first surname,a nickname, ...
data
**AFTER**
the_first_name,the_second_name,the_first_surname,a_nickname, ...
data
Bất kỳ con trỏ nào với mẫu phù hợp để sử dụng hoặc giải pháp tập lệnh khác sẽ tuyệt vời.
Điều đó cần một 'g' ở cuối để làm cho nó thay thế tất cả các khoảng trống trong dòng, không chỉ là dấu cách đầu tiên. –
perl -i -pe 's// _/g nếu 1 .. 10' ??? Wow, tôi chưa bao giờ nghe nói về cú pháp này trong "nếu 1..10". Đôi khi tôi cảm thấy hơi khó chịu với Perl. Tại sao tất cả các ngoại lệ này? Tại sao không chỉ sử dụng đơn giản nếu ($. <11)? – Frank
@leon: wow, mẹo rất gọn gàng !, cảm ơn bạn. –