从csv文件中删除标题和空白行
问题描述:
我有一群csv文件以某种其他系统的每日提要的形式出现。从csv文件中删除标题和空白行
我必须从文件中删除标题和一些可选的空白行,然后将其加载到HDFS并在其上构建外部表。
目前我有两个步骤的过程,把工作文件上HDFS
//remove blank lines
sed -i '/^\s*$/d' file_20160802.csv
//remove header
sed -i 1d file_20160802.csv
//put file on HDFS
hdfs dfs -put file_20160802.csv /raw/abc/20160802/
之前删除页眉和空格有没有一种方法,我可以结合这两个步骤,而无需创建任何临时文件?
答
您可以结合这样的:
sed -i '1d; /^\s*$/d' file
答
sed -ni.bak '1!{/^$/!p}' file.csv
也应该做的工作,备份与file.csv.bak
将被创建。
这是怎么回事?
-
1!
过程除了第1行!
是否定以下命令。 -
/^$/
检查空行。 -
!p
如果由于否定而导致非空(!
),则按照上面的模式检查将打印该行。 -
-i
或就地编辑选项确保更改直接反映在文件中。
谢谢堆@sat !! –