【发布时间】:2013-09-21 07:41:40
【问题描述】:
我有一个包含超过 500,000 行的 .CSV 文件,我需要:
- 查找所有“空格双引号空格”序列并替换为空
- 查找所有“空格双引号”序列并替换为空
- 查找所有双引号并替换为空
.CSV 行示例:
"DISH Hartford & New Haven (Hartford)", "206", "FBNHD", " 06028", " East Windsor Hill", "CT", "Hartford County"
** 所需输出**
DISH Hartford & New Haven (Hartford),206,FBNHD,06028,East Windsor Hill,CT,Hartford County
我需要删除所有双引号 (") 和逗号前后的空格 (,)。
我试过了
$ cd /Users/Leonna/Downloads/
$ cat bs-B2Bformat.csv | sed s/ " //g
这给了我比提示更大的“命令不完整”,所以我尝试了:
$ cat bs-B2Bformat.csv | sed s/ " //g
sed: 1: "s/": unterminated substitute pattern
$ cat bs-B2Bformat.csv |sed s/ \" //g
sed: 1: "s/": unterminated substitute pattern
$
我在 Excel 中编辑的行太多(Excel 不会加载所有行)甚至是文本编辑器。我该如何解决这个问题?
【问题讨论】:
-
编辑了我的答案。应该这样做...
-
一般评论 — 将
sed脚本括在单引号中。例如:sed 's/ " //g'。唯一不这样做的情况是……也许……当命令本身需要包含单引号时,通常最好将每个文字单引号写成'\'',所以你可以写sed 's/ '\'' //g'。
标签: macos bash csv sed terminal