sed+字符串附加在最后一行,而不是新的一行



我们有以下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语法出了什么问题吗?

sed -E '/^$/d;s/[[:space:]]+//g' file.cs

使用-E和-R启用正则表达式解释,首先删除任何空行,然后用一个或多个空格代替无

相关内容

  • 没有找到相关文章

最新更新