Tôi có thói quen viết một dòng trên mỗi câu vì tôi thường biên dịch mọi thứ cho LaTex hoặc đang viết ở một số định dạng khác trong đó ngắt dòng bị bỏ qua. Tôi sử dụng một dòng trống để chỉ sự bắt đầu của một đoạn mới.
Bây giờ, tôi có một tệp được viết theo phong cách này mà tôi muốn gửi dưới dạng văn bản thuần túy. Tôi muốn xóa tất cả các ngắt dòng đơn nhưng vẫn giữ nguyên các ngắt dòng kép. Đây là những gì tôi đã làm:
sed 's/$^/NEWLINE/' file.txt | awk '{printf "%s ",$0}' | sed 's/NEWLINE/\n\n/g' > linebreakfile.txt
Điều này thay thế các dòng trống bằng một số văn bản mà tôi tự tin không xuất hiện trong tệp: NEWLINE
và sau đó nó sẽ loại bỏ tất cả các ngắt dòng bằng awk (tôi đã tìm thấy mẹo đó trên một số trang web) và sau đó nó thay thế NEWLINE
s bằng hai ngắt dòng cần thiết .
Đây có vẻ là một cách dài để làm một điều khá đơn giản. đó có phải là cách dễ hơn? Ngoài ra, nếu có một cách để thay thế nhiều không gian (đôi khi vì lý do nào đó) bằng các không gian duy nhất, điều đó cũng tốt.
Tôi sử dụng emacs, vì vậy nếu có một số thủ thuật cụ thể của emacs thì tốt, nhưng tôi muốn thấy một phiên bản sed thuần túy hoặc thuần túy.
tr -d "\n"
.