У нас есть 10 ПК с некоторой версией Ubuntu и только удаленный доступ. Выполняя некоторые обновления для пользовательского программного обеспечения, я не заметил, что окончание строк в некоторых сценариях было версией Windows (CR + LF), а не версией Unix (LF). Итак, теперь, когда я хочу запустить скрипт, он дает ошибку:
bash: /usr/local/bin/portsee: /usr/bin/python^M: bad interpreter: No such file or directory
Есть ли способ изменить все окончания строк в сценарии из терминала. Дело в том, что я не могу установить какое-либо новое программное обеспечение для этой группы ПК.
Вы можете использовать программу dos2unix, специально предназначенную для этого:
dos2unix file.txt
заменит все CR всех строк,
Чтобы сохранить вывод в другом файле:
dos2unix -n file.txt output.txt
Возможно, вам потребуется его сначала установить:
sudo apt-get install dos2unix
Или вы можете использовать sed для замены всех CR (\r) из окончаний строки:
sed -i.bak 's/\r$//' file.txt
С помощью опции -i, файл будет отредактирован на месте, а исходный файл будет скопирован как file.txt.bak.
Вы можете использовать программу dos2unix, специально предназначенную для этого:
dos2unix file.txt
заменит все CR всех строк,
Чтобы сохранить вывод в другом файле:
dos2unix -n file.txt output.txt
Возможно, вам потребуется его сначала установить:
sudo apt-get install dos2unix
Или вы можете использовать sed для замены всех CR (\r) из окончаний строки:
sed -i.bak 's/\r$//' file.txt
С помощью опции -i, файл будет отредактирован на месте, а исходный файл будет скопирован как file.txt.bak.
dos2unix
Вы можете использовать программу dos2unix
, специально предназначенную для этого:
dos2unix file.txt
заменит все CR всех строк,
Чтобы сохранить вывод в другом файле:
dos2unix -n file.txt output.txt
Возможно, вам потребуется установить его сначала:
sudo apt-get install dos2unix
sed
Или вы можете использовать sed
для замены всех CR (\r
) из окончаний строки:
sed -i.bak 's/\r$//' file.txt
С помощью опции -i
файл будет отредактирован на месте, а исходный файл будет скопирован как file.txt.bak
.
dos2unix
Вы можете использовать программу dos2unix
, специально предназначенную для этого:
dos2unix file.txt
заменит все CR всех строк,
Чтобы сохранить вывод в другом файле:
dos2unix -n file.txt output.txt
Возможно, вам потребуется установить его сначала:
sudo apt-get install dos2unix
sed
Или вы можете использовать sed
для замены всех CR (\r
) из окончаний строки:
sed -i.bak 's/\r$//' file.txt
С помощью опции -i
файл будет отредактирован на месте, а исходный файл будет скопирован как file.txt.bak
.