我有一个数据集如下所示:

TEST,SOMELOG
TESA,SOMELOGA
TESB
TESC
TESD,SOMELOGB
TESE
TESF
TESG,SOMELOGC

需要让它看起来像这样:
TEST,SOMELOG
TESA,SOMELOGA
TESB,SOMELOGB
TESC,SOMELOGB
TESD,SOMELOGB
TESE,SOMELOGC
TESF,SOMELOGC
TESG,SOMELOGC

其中,如果第2列为空,,SOMELOGB,SOMELOGC将替换每个/r回车。替换只在第2列为空并且应该替换到非空行时发生。会考虑bash/sed/awk或vim解决方案。

最佳答案

去营救!
如果你有awk,这可能是最简单的

$ tac file | awk -F, -v OFS=, 'NF==1{$2=p} NF>1{p=$2}1' | tac

关于bash - vim:如果为空白,则用同一列中的值替换第二列空白,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41168299/

10-12 14:25