Сценарий Bash не обновляет ubuntu [dубликат]

В этом вопросе уже есть ответ: что может привести к тому, что скрипт не сможет найти python, когда в первой строке есть `#! / usr / bin / env python`? 1 ответ

У нас есть 10 ПК с некоторой версией Ubuntu и только удаленный доступ. Выполняя некоторые обновления для пользовательского программного обеспечения, я не заметил, что окончание строк в некоторых сценариях было версией Windows (CR + LF), а не версией Unix (LF). Итак, теперь, когда я хочу запустить скрипт, он дает ошибку:

bash: /usr/local/bin/portsee: /usr/bin/python^M: bad interpreter: No such file or directory

Есть ли способ изменить все окончания строк в сценарии из терминала. Дело в том, что я не могу установить какое-либо новое программное обеспечение для этой группы ПК.

9
задан 26 July 2016 в 18:01

4 ответа

Вариант 1: dos2unix

Вы можете использовать программу dos2unix, специально предназначенную для этого:

dos2unix file.txt

заменит все CR всех строк,

Чтобы сохранить вывод в другом файле:

dos2unix -n file.txt output.txt

Возможно, вам потребуется его сначала установить:

sudo apt-get install dos2unix

Опция 2: sed

Или вы можете использовать sed для замены всех CR (\r) из окончаний строки:

sed -i.bak 's/\r$//' file.txt

С помощью опции -i, файл будет отредактирован на месте, а исходный файл будет скопирован как file.txt.bak.

14
ответ дан 18 July 2018 в 11:13

Вариант 1: dos2unix

Вы можете использовать программу dos2unix, специально предназначенную для этого:

dos2unix file.txt

заменит все CR всех строк,

Чтобы сохранить вывод в другом файле:

dos2unix -n file.txt output.txt

Возможно, вам потребуется его сначала установить:

sudo apt-get install dos2unix

Опция 2: sed

Или вы можете использовать sed для замены всех CR (\r) из окончаний строки:

sed -i.bak 's/\r$//' file.txt

С помощью опции -i, файл будет отредактирован на месте, а исходный файл будет скопирован как file.txt.bak.

14
ответ дан 24 July 2018 в 19:45

Вариант 1: dos2unix

Вы можете использовать программу dos2unix, специально предназначенную для этого:

dos2unix file.txt

заменит все CR всех строк,

Чтобы сохранить вывод в другом файле:

dos2unix -n file.txt output.txt

Возможно, вам потребуется установить его сначала:

sudo apt-get install dos2unix

Опция 2: sed

Или вы можете использовать sed для замены всех CR (\r) из окончаний строки:

sed -i.bak 's/\r$//' file.txt

С помощью опции -i файл будет отредактирован на месте, а исходный файл будет скопирован как file.txt.bak.

15
ответ дан 3 August 2018 в 20:01

Вариант 1: dos2unix

Вы можете использовать программу dos2unix, специально предназначенную для этого:

dos2unix file.txt

заменит все CR всех строк,

Чтобы сохранить вывод в другом файле:

dos2unix -n file.txt output.txt

Возможно, вам потребуется установить его сначала:

sudo apt-get install dos2unix

Опция 2: sed

Или вы можете использовать sed для замены всех CR (\r) из окончаний строки:

sed -i.bak 's/\r$//' file.txt

С помощью опции -i файл будет отредактирован на месте, а исходный файл будет скопирован как file.txt.bak.

15
ответ дан 9 August 2018 в 02:17

Другие вопросы по тегам:

Похожие вопросы: