Sử dụng sed để sửa đổi và thực hiện lệnh trước đó


1

Tôi đã có một loạt các tệp pdf được nối với một dòng lệnh rất dài nằm trong một thư mục. Một số bằng tiếng Anh và một số bằng tiếng Pháp, được phân biệt bởi _e.pdf_f.pdf.

Bởi vì chúng được tham gia theo một thứ tự cụ thể, dòng lệnh không thể rút ngắn, nhưng tôi muốn sửa đổi và thực hiện lại, chỉ cần thay thế _ebằng _f. Làm thế nào tôi có thể sử dụng sed(hoặc khác) cho việc này?

Hãy nói rằng lệnh là

pdfjoin file1_e.pdf file2_e.pdf file3_e.pdf 

và trong lịch sử, đó là lệnh 10.

Tôi đã đi xa như

echo !10 | sed 's/_e.pdf/_f.pdf/g'

Nó lặp lại lệnh tôi muốn chạy. Nhưng tôi thực sự muốn chạy nó, không chỉ hiển thị lệnh.

Câu trả lời:


5

Bạn đã thử backticks?

`echo !10 | sed 's/_e.pdf/_f.pdf/g'`

Mặc dù tôi không thể giúp bạn cảm thấy rằng bạn nên sử dụng make.


0

Nhân tiện, GNU sed có nhiều mẹo thú vị hơn để thực thi các lệnh:

echo !10 | sed 's/_e.pdf/_f.pdf/ge'
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.