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

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

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

Как можно окружить каждую новую строку буквами 'и a' (кавычки).

, например

File1:

/home/user/some type of file with spaces
/home/user/another type of file with spaces

К

File2:

'/home/user/some type of file with spaces'
'/home/user/another type of file with spaces'

Ответы [ 4 ]

34 голосов
/ 24 октября 2009

Использовать sed?

sed -e "s/\(.*\)/'\1'/"

Или, как прокомментировано ниже, если каталоги могут содержать апострофы (кошмар, если они есть), используйте эту альтернативу

sed -e "s/'/'\\\\''/g;s/\(.*\)/'\1'/"
6 голосов
/ 24 октября 2009

Использование sed:

sed -i "s/^.*$/'&'/g" filename
3 голосов
/ 24 октября 2009

Вы можете использовать sed (1) для вставки одинарных кавычек в начале и конце каждой строки в файле, например:

sed -i~ -e "s/^/'/;s/$/'/" the_file
2 голосов
/ 24 октября 2009

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

while read -r line
do
  echo "'$line'"
  # do something
done < "file"
...