Окружите все строки текстового файла кавычками («что-то»)

StackOverflow https://stackoverflow.com/questions/1616577

Вопрос

У меня есть список каталогов, содержащих пробелы.

Мне нужно окружить их знаком '', чтобы гарантировать, что мои пакетные сценарии будут работать.

Как можно заключать каждую новую строку в «и» (кавычки).

например

Файл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"
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top