如何用双引号括起一个字符串

时间:2017-06-26 16:20:48

标签: perl double-quotes quoting

我有一个包含以下内容的文件

firsttext=cat secondtext=dog thirdtext=mouse

我希望它返回此字符串:

"firsttext=cat" "secondtext=dog" "thirdtext=mouse"

我试过这个单行,但它给了我一个错误。

cat oneline | perl -ne 'print \"$_ \" '
  

无法找到字符串终结符'"'' EOF之前的任何地方-e第1行。

我不明白错误。为什么它只是添加引号?


另外,如果我在这个字符串中有一个变量,我希望它插入如下:

firsttext=${animal} secondtext=${othervar} thirdtext=mouse

哪个应输出

"firsttext=cat" "secondtext=dog" "thirdtext=mouse"

2 个答案:

答案 0 :(得分:0)

perl -lne '@f = map qq/"$_"/, split; print "@f";' oneline

答案 1 :(得分:-2)

你想要的是这个:

cat oneline | perl -ne 'print join " ", map { qq["$_"] } split'

-ne选项仅在行上拆分,在没有设置其他选项的情况下,它不会在任意空格上拆分。