【发布时间】:2017-12-14 15:19:18
【问题描述】:
我在一个变量中有一个多行变量,比如
This is
a variable
它通过多个管道命令,在某些时候,我想给它加上双引号,所以它变成了
"This is
a variable"
我尝试使用awk 和print 来做到这一点,因为我在网上和这里找到了一些答案,但它要么什么都不打印,要么打印变量的名称,要么只打印"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 文件,所以我需要双引号之间的这个多行变量来保持这种状态。如果有什么要补充的,请告诉我。
【问题讨论】:
-
"如果相关,我正在尝试创建一个 CSV 文件," ... 是的,非常相关!最好包含 2 行示例数据,1 行需要多行字段,1 行不需要,然后显示您需要如何转换它。此外,您通过管道传输的所有 cmd 都可以作为 1
awk脚本执行,但其中有很多疯狂的东西,awk '{echo ...}'???。最后,您是否故意省略了"$list_comments"周围的 dbl-quotes?祝你好运。 -
@shellter 我没有像你说的那样尝试留下双引号,我会试试的!
awk '{echo ...}'是我将双引号添加到值的许多不成功尝试之一。其他一切都只是处理从 API 获取的 JSON 字符串。