Đó có phải là lỗi ... hay có giải thích?Lệnh Sed - thứ tự cờ tùy chọn có ý nghĩa gì? (-ir vs -ri)
Xin lưu ý rằng tôi không tìm kiếm một workaround mà là lý do tại sao thứ tự của -ir
và -ri
vấn đề ...
Hãy tưởng tượng các dữ liệu sau lưu trữ trong file data.txt
1, StringString, AnotherString 545
2, StringString, AnotherString 723
3, StringString, AnotherString 610
4, StringString, AnotherString 118
5, StringString, AnotherString 482
Mong muốn chuyển đổi chuỗi
Replace "StringString" with "Strung"
Với mã sau
sed -ir 's/String+/Strung/g' data.txt <-- won't work
sed -ri 's/String+/Strung/g' data.txt <-- will work
Tôi không thấy bất kỳ lý do tại sao thứ tự của cờ tùy chọn sẽ có vấn đề? Bất kỳ lời giải thích?
Sidenotes: Việc chuyển đổi -i
"chỉnh sửa file tại chỗ" trong khi -r cho phép "mở rộng biểu thức chính quy" (cho phép các nhà điều hành +
). Chạy sed 4.2.1 tháng 12 năm 2010 trên Ubuntu 12.10.
Làm !! Ồ, tôi vừa tìm thấy tệp có tên "data.txtr" trong thư mục - được tạo dưới dạng bản sao lưu. Tôi đã mong đợi một không gian để tách hậu tố nhưng bây giờ nó có ý nghĩa. – somethis