Sed не находит файл, если он указан в кавычках [дубликат]

-1
04.05.2019, 09:01
2 ответа

Проблема здесь в той части, которую вы не показываете. Где-то перед этой строкой у вас есть что-то вроде этого:

filename="~/file"

Таким образом, проблема не в том, что более позднее использование $filenameзаключено в кавычки, оно не заключено в кавычки, и это может привести к другим проблемам, если имя содержит пробелы.

Оболочка расширяет ~до домашнего каталога, если это первый символ слова. Он не расширяется, если является результатом раскрытия переменной.

Вы можете использовать $HOMEвместо~:

filename=$HOME/file
sed -i "$3d" $filename

или лучше с кавычками:

filename="$HOME/file"
sed -i "$3d" "$filename"
0
28.01.2020, 05:09

Проблема заключается в кавычках вокруг имени файла. Они не позволяют вашей оболочке расширить ~до вашей домашней папки. Итак, sedищет папку с именем ~.

Убедитесь, что $filenameне содержит кавычек, или используйте реальный путь вместо ~.

1
28.01.2020, 05:09

Теги

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