在Bash中为管道中的多行变量添加双引号

问题描述 投票:-1回答:1

我在变量中有一个多行变量,例如

This is
a variable

它通过多个管道命令,在某些时候,我想添加双引号,所以它成为

"This is
a variable"

我尝试使用awkprint这样做,因为我在网上和这里找到了一些答案,但它要么没有打印,要么打印变量的名称,要么只打印"This。这是我得到的:

    echo $list_comments \
    | awk -v k="text" '{n=split($0,a,","); for (l=1; l<=n; l++) print a[l]}' \
    | awk '/'$FILTER_COMMENT'/ {print $0}' \
    | cut -d ":" -f2 \
    | sed -e 's/[\"]/''/g' \
    | tr "\n" "\r" \
    | awk '{echo "\"$1\""}' \
    | tr -d "\n" >> app_comments.txt

如果它是相关的,我正在尝试创建一个CSV文件,所以我需要在双引号之间使用这个多行变量来保持这种方式。如果有任何补充,请告诉我。

bash pipe pipeline
1个回答
1
投票

这是你的预期吗?

$ a=$(echo -e "hello\nword"); echo "${a}"
hello
word

$ a=$(echo -e "hello\nword"); echo \""${a}"\"
"hello
word"
© www.soinside.com 2019 - 2024. All rights reserved.