介绍
sed 是一种流编辑器,是Unix常见的命令行程序。能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。 Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
校验数据格式
有时在本机做测试,需要从网上下载比较大的 CSV 文件,然而在导入数据库的过程中报错。做的友好一点的数据库会告诉你是格式错误,遇到不友好的就要折腾一番。为了避免这种情况,可以在下载文件后直接用 sed 命令检查下数据格式是否正确。
查看下载文件 hotel.csv
的正确数据格式:
head -n 1 hotel.csv
如图,正确的数据格式应该是每行32个以逗号分割的字段,用 sed 检查是否有错误格式的数据:
sed -E '/([^,]*,){31}/d' hotel.csv
参数 -E:表示后面是标准正则; 字符 d:表示把正则匹配的行都删除,所以会显示不匹配的行;
不要试图去找各种牛X的软件去做这件事,因为一般这种文件会达到几个 G,打开它需要很大内存,而sed每次处理一行。