Окружите все строки текстового файла кавычками («что-то»)
Вопрос
У меня есть список каталогов, содержащих пробелы.
Мне нужно окружить их знаком '', чтобы гарантировать, что мои пакетные сценарии будут работать.
Как можно заключать каждую новую строку в «и» (кавычки).
например
Файл1:
/home/user/some type of file with spaces
/home/user/another type of file with spaces
К
Файл2:
'/home/user/some type of file with spaces'
'/home/user/another type of file with spaces'
Решение
Использовать СЭД?
sed -e "s/\(.*\)/'\1'/"
Или, как указано ниже, если каталоги могут содержать апострофы (кошмар, если они есть), используйте этот альтернативный вариант.
sed -e "s/'/'\\\\''/g;s/\(.*\)/'\1'/"
Другие советы
Использование СЭД:
sed -i "s/^.*$/'&'/g" filename
Вы можете использовать СЭД(1) вставить одинарные кавычки в начале и конце каждой строки файла следующим образом:
sed -i~ -e "s/^/'/;s/$/'/" the_file
очень простая логика, вам просто нужно повторить кавычки спереди и сзади.
while read -r line
do
echo "'$line'"
# do something
done < "file"
Не связан с StackOverflow