如何在这个AWK单线程中删除双引号,并删除第一条记录?

时间:2013-01-21 18:52:10

标签: php awk text-processing

尝试在我的AWK代码中查找所有独特制造商的列表。我使用以下内容成功地从CSV中提取它们并输出到换行符分隔的文本文件,以便将来导入到Magento:

awk 'BEGIN {FS=";";ORS="\n";}a[$33]++==0 {print $33}' ./rsrimport/IMPORT.csv >OUTPUT.txt

输出:

"manufacturer"
"5.11 Tactical"
"Advantage Arms"
"Advanced Armament Corp"
"Ultra Dot"
"American Classic"
"AccuSharp"
"Adams Arms"
"American Defense Mfg."
"Advanced Technology"
"A&G"
"Aimpoint"
""
"Arsenal, Inc."
"Allen"
"AmeriGlo"
"Apex Tactical Specialties"
"Armscor"
"Armalite"
"A.R.M.S., Inc."
"ASP"

我想做的是三重:

  1. 剥去双引号
  2. 删除第一行(即标题     来自文件)
  3. 消除任何空白(带有“”)的行
  4. 已经挣扎了一段时间,并阅读了无数的论坛。感谢您提供的任何帮助!

2 个答案:

答案 0 :(得分:5)

使用gsub替换"并使用if条件。

{x=$33; gsub("\"","", x);  if(x && FNR!=1){print x;}}

http://ideone.com/36IwCx

答案 1 :(得分:2)

试试这个

sed -re '1d;s/"//g; /^( \t)*$/ d' temp.txt