awk
我正在使用如下所示的方法从文件中获取字符串 。现在我想双引号它。任何支持将不胜感激。
awk -F',' '{print $(NF)}' sample.csv| tail +2
输出:
sample
预期输出:
"sample"
答案1
要向字符串添加引号,请打印awk
添加了引号的字符串:
print "\"" $NF "\""
或者
printf "\"%s\"\n", $NF
请注意,这会将引号添加到已引用的字段中。
使用 CSV 感知工具磨坊主( mlr
) 提取带有标题(带引号)的字段Data
,但不带 CSV 标题:
mlr --csv --headerless-csv-output --quote-all cut -f Data file.csv
这不会向已引用的字段添加引号,但会正确返回包含嵌入逗号、引号和换行符的字段,这是awk
不容易做到的。
要引用 CSV 文件中的所有数据并将该文件写回原始文件,我将使用 Miller,如下所示:
mlr --csv --quote-all -I cat file.csv
该-I
选项导致mlr
执行就地编辑。您还可以使用--quote-numeric
仅使用引用数字字段。以任何其他方式添加引用都没有多大意义,至少在数据由支持 CSV 的工具读取时没有意义。 CSV 处理工具通用消除默认情况下不需要引用。