【发布时间】:2021-04-18 13:30:56
【问题描述】:
我们有以下 csv 文件
more file.csv
ams-site ,host.aggregator.ttl ,86400
capacity-scheduler,maximum-am-resource,0.6
yarn-site,yarn.log-aggregation.retain-seconds,800
我们需要从 csv 文件中删除空行,同时删除 scv 文件中的空格
所以我们做了以下
sed -i '/^\s*$/d' file.csv
sed -i -E 's/(^|,)[[:blank:]]+/\1/g; s/[[:blank:]]+(,|$)/\1/g' file.csv
以上sed设置后
我们将新行添加为
echo zoo.cfg,timeout,100>> file.cs
但我们现在看到file.csv 看起来像这样
ams-site ,host.aggregator.ttl ,86400
capacity-scheduler,maximum-am-resource,0.6
yarn-site,yarn.log-aggregation.retain-seconds,800zoo.cfg,timeout,100
所以我怀疑我的 sed 语法为 sed -i -E 's/(^|,)[[:blank:]]+/\1/g; s/[[:blank:]]+(,|$)/\1/g'
这个错误看起来像是最后一行之后的回车而不是换行
知道我的 sed 语法有什么问题吗?
【问题讨论】:
-
在回显之前考虑
echo '' >> file.cs... 因为我认为 CSV 缺少 newline at end of file。