【发布时间】:2016-07-19 14:03:45
【问题描述】:
有许多示例使用 awk 将字段用双引号括起来。我一直在尝试用单引号括起一个字段以在 postgresql 中加载 csv 文件的数据,但没有成功。
以下是我的一些尝试:
#!/usr/bin/awk -f
BEGIN { FS=OFS=","}
{
for (i = 1; i <= NF; ++i)
if($i == 9)
{
$i = "\'' $i \''"
}
print $0 >> "output.csv"
}
或
awk 'BEGIN { OFS=FS="," } { $9= ""'" $9 ""'"} 1' container.csv > output.csv
还有……
awk -v q="'" 'BEGIN { FS="," } { sub($9, ""\'"&"\'"" );print}' container.csv > output.csv
【问题讨论】:
-
顺便说一句,您可以在数据加载期间在字段之间使用任意分隔符。使用永远不会出现在您的数据中的分隔符(例如,ASCII 字段分隔符,如果您已确认它不存在)并且您无需担心引用。
-
谢谢 - 下一张桌子会试一试的。