【发布时间】:2015-03-12 09:16:59
【问题描述】:
我有一个 csv 文件,其中包含如下行:
300001;公司名称;023-1 2 3 4 5 6 7;023-3 2 4 6 43 4;email@test.com;;;;街道名称;184;;邮政编码;城市
我想去掉第 3 列和第 4 列(电话和传真号码)中的空格,使其看起来像这样:
300001;公司名称;023-1234567;023-3246434;email@test.com;;;;街道 姓名;184;;邮政编码;城市
我尝试了在 Stackoverflow 上找到的这些 awk 代码(第 3 列),但没有成功:
awk -v FS=OFS=";" '{gsub(/ /,"",$3)} 1' file.csv > test.csv
awk -F, '$3 ~ / / { OFS= ";"; $3 = ""; } 1' file.csv > test.csv
我已经在谷歌上搜索了半天,但找不到任何有用的东西。
【问题讨论】:
-
你能扩展“没有运气”这句话吗?你的输出是什么?
-
运气不好,我的意思是输出与输入相同。不过A.M.D.的回答好像解决了我的问题!
-
嗯,问题在于
-v FS=OFS=";"表达式,gsub()部分很好。你不能在同一个表达式中设置两个变量,所以你需要-v FS=";" -v OFS=";"。