我有一个包含空格的目录列表。
我需要用''来包围它们,以确保我的批处理脚本能够正常工作。
如何使用'和'(引号)围绕每个新行。
e.g。
File1中:
/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'
答案 0 :(得分:34)
使用sed?
sed -e "s/\(.*\)/'\1'/"
或者,如下所述,如果目录可能包含撇号(如果他们这样做,那就是噩梦)使用此备用
sed -e "s/'/'\\\\''/g;s/\(.*\)/'\1'/"
答案 1 :(得分:5)
使用sed:
sed -i "s/^.*$/'&'/g" filename
答案 2 :(得分:3)
您可以使用sed(1)在文件中每行的开头和结尾插入单引号,如下所示:
sed -i~ -e "s/^/'/;s/$/'/" the_file
答案 3 :(得分:2)
非常简单的逻辑,你只需要回显前后的引号。
while read -r line
do
echo "'$line'"
# do something
done < "file"
答案 4 :(得分:0)
我更喜欢 awk(它比 bash 快,而且很容易扩展):
awk '{print "\'" $0 "\'"}'