Surround all lines in a text file with quotes ('something')
31,886
Solution 1
Use sed?
sed -e "s/\(.*\)/'\1'/"
Or, as commented below, if the directories might contain apostrophes (nightmare if they do) use this alternate
sed -e "s/'/'\\\\''/g;s/\(.*\)/'\1'/"
Solution 2
Using sed:
sed -i "s/^.*$/'&'/g" filename
Solution 3
You can use sed(1) to insert single quotes at the beginning and end of each line in a file as so:
sed -i~ -e "s/^/'/;s/$/'/" the_file
Solution 4
very simple logic, you just need to echo the quotes in front and behind.
while read -r line
do
echo "'$line'"
# do something
done < "file"
Solution 5
I prefer awk (it's faster than bash and very easy to extend):
awk '{print "\'" $0 "\'"}'
Author by
user191960
Updated on September 07, 2021Comments
-
user191960 over 2 years
I've got a list of directories that contain spaces.
I need to surround them with ' ' to ensure that my batch scripts will work.
How can one surround each new line with a ' and a ' (quotes).
e.g.
File1:
/home/user/some type of file with spaces /home/user/another type of file with spaces
To
File2:
'/home/user/some type of file with spaces' '/home/user/another type of file with spaces'