用引号('something')环绕文本文件中的所有行

时间:2009-10-24 00:25:06

标签: linux unix text directory grep

我有一个包含空格的目录列表。

我需要用''来包围它们,以确保我的批处理脚本能够正常工作。

如何使用'和'(引号)围绕每个新行。

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'

5 个答案:

答案 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 "\'"}'