Tôi có các tệp văn bản lớn với các chuỗi phân cách không gian (2-5). Các chuỗi có thể chứa "'" hoặc "-". Tôi muốn thay thế không gian thứ hai bằng một đường ống.
Cách tốt nhất để đi là gì?
Sử dụng sed tôi đã nghĩ về điều này:
sed -r 's/(^[a-z'-]+ [a-z'-]+\b) /\1|/' filename.txt
Bất kỳ ý tưởng khác / tốt hơn / đơn giản hơn?
sed
tệp thông tin: "Lưu ý: tiêu chuẩn POSIX không chỉ định điều gì sẽ xảy ra khi bạn trộn cácg' and NUMBER modifiers, and currently there is no widely agreed upon meaning across
triển khai của sed '. Đối với GNU` sed', tương tác được xác định là: bỏ qua các kết quả khớp trước SỐ, rồi khớp và thay thế tất cả phù hợp từ thứ 1 trở đi. "