1

$ ex -sc $'%s/\r$//e|x' file Отлично работает с терминала из, но когда я пытаюсь запустить его с помощью скрипта .sh он просто игнорирует строки после 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

Все работает, но не последняя командная строка. Я в основном пытаюсь удалить CRLF (управляющие символы конца строки) из файла finalutf8.csv. Некоторые подробные объяснения будут оценены. Если не понятно, так как английский - мой второй язык, я постараюсь объяснить это.

2 ответа2

1

Для чего эти $ ?

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

Кажется, работает так, как вы хотите.

1

$'' только вещь bash; сценарий оболочки, вероятно, выполняется с помощью sh или dash. Положил

#!/bin/bash

в первой строке.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .