tôi muốn làm thay thế cho các mẫu sau (quy tắc nói trên có ưu tiên cao hơn)làm thế nào để sử dụng sed thay thế mô hình chuỗi với dấu chéo ngược
\right) -> remain unchanged
\right) -> remain unchanged
\right] -> remain unchanged
\right ] -> remain unchanged
\right} -> remain unchanged
\right } -> remain unchanged
\ri) -> \right)
\ri -> \rightarrow
\right -> \rightarrow
Nói cách khác, nếu có bất kỳ dấu ngoặc khung hoặc nẹp, tôi muốn có \ right, nếu có gì khác, nó phải được thay thế bằng \ rightarrow. Trong ngắn hạn, tôi đã cố gắng chuyển đổi rất nhiều phương trình google doc nhanh chóng với định dạng LaTeX thích hợp. Những gì tôi đã đưa ra là sau đây
sed -i 's/\\ri\([^g]\)/\\right\1/g' $tempfile1 #first step substitution
sed -i 's/\\right\([^])}>|a]\)/\\rightarrow\1/g' $tempfile1
sed -i 's/\\right \([^])}>|a]\)/\\rightarrow \1/g' $tempfile1
Nó hoạt động ok ngoại trừ nó không thay đổi \ right \ thành \ rightarrow \ như mong đợi. My tempfile1 kiểm tra đầu vào là như sau
\ri\right\right \right)\right]\right }\right)\ri \right ]\righta \al \\
Nó đi vào
\rightarrow\right\rightarrow \right)\right]\right }\right)\rightarrow \right ]\rightarrow \alpha \\
Ghi nhận rằng \ right \ phần đã không được thực hiện một cách chính xác. Sau đó, tôi thêm vào dòng sau, nghĩ rằng nó sẽ rõ ràng nhặt những gì còn lại, tuy nhiên, nó không hoạt động như mong đợi và bây giờ tôi thực sự bối rối ...
sed -i 's/\\right\\/\\rightarrow\\/g' $tempfile1 #why this does not work
Cảm ơn rất nhiều trước!
Nó làm việc cho tôi. – aragaer
Chắc chắn bạn có thể kết hợp 3 tập lệnh của mình thành một tập lệnh bằng cách sử dụng 'sed -i -e '... pattern1 ...' -e '... pattern2 ...' -e '... pattern3 ...' .. .'. Đối với các tệp có kích thước kilobyte, ba lần truy cập có thể không quan trọng lắm, nhưng đối với các tệp nhiều megabyte và lớn hơn, một lượt vượt qua so với ba có thể tạo ra sự khác biệt lớn. –
Tôi hiểu rồi, thx. Kích thước tệp thông thường cho tôi nhỏ hơn 50K (tài liệu LaTeX bình thường), nhưng tôi có 30 mẫu (ví dụ: \ al \ beta \ del \ b \ i \ sig) để thay thế và số lượng tăng lên theo thời gian. (Cảm ơn google doc cho trình soạn thảo phương trình của nó và "cải tiến" gần đây mà họ đã thực hiện) – gamebm