引用 awk 输出中的字符串

引用 awk 输出中的字符串

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 处理工具通用消除默认情况下不需要引用。

相关内容