Tôi không thể chạy tập lệnh shell bằng ex (VIM)?


1

$ ex -sc $'%s/\r$//e|x' file Hoàn hảo hoạt động từ thiết bị đầu cuối từ nhưng khi tôi cố gắng chạy nó với .sh kịch bản nó chỉ đơn giản là bỏ qua các dòng sau ex.

$ rm ~/Desktop/projectautomate/finalutf81.csv    
$ rm ~/Desktop/projectautomate/finalutf8.csv

$ cat ~/Desktop/projectautomate/headersutf8.csv ~/Desktop/projectautomate/upload.csv >> ~/Desktop/projectautomate/finalutf8.csv


$ iconv -f utf-16 -t utf-8 ~/Desktop/projectautomate/finalutf8.csv -o ~/Desktop/projectautomate/finalutf81.csv -c
$ ex -sc $'%s/\r$//e|x' ~/Desktop/projectautomate/finalutf81.csv

Mọi thứ hoạt động nhưng không phải là dòng lệnh cuối cùng. Về cơ bản, tôi đang cố gắng xóa CRLF (ký tự điều khiển dòng cuối) khỏi tệp Finalutf8.csv. Một số giải thích chi tiết sẽ được đánh giá cao. Nếu không rõ ràng vì tiếng Anh là ngôn ngữ thứ hai của tôi, tôi sẽ cố gắng giải thích nó.

Câu trả lời:


1

Cái gì đây $ cho?

#!/bin/sh
ex -sc '%s/\r//e|x' toto.txt

dường như làm việc theo cách bạn muốn


Cảm ơn nó hoạt động. một số trong một số blog đề nghị thêm $ trước các mã. Tôi không chắc mọi người có sử dụng nó ở đây hay không. Không biết về #!/bin/sh. những gì thực sự là để làm gì? Có vẻ như # bình luận ra nhưng một lần nữa nó hoạt động.
tough

1
#!/bin/sh được sử dụng để nói với shell của bạn về cách diễn giải kịch bản của bạn xem ở đây . Bạn nên đặt nó trên dòng đầu tiên của tập lệnh shell của bạn.
romainl

Cảm ơn, đó là điều quan trọng để biết cho nhiều mục đích sử dụng khác.
tough

1

$'' chỉ là một thứ bash; kịch bản shell có thể được thực thi với sh hoặc dash. Đặt

#!/bin/bash

trong dòng đầu tiên.

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.