我有一个很大的报告文件(大约20MB),看起来像这样:
586 700006207 8,622.09 896
9,882.82 896
777 68607099 900.00 896
587 800006207 7,059.22 896
959.02 896
697.87 896
7 280667985 .00 899
如果第一列和第二列的值与上面的行相同,则为空白。我需要grep / sed / powershell单线填充的空白,因此它看起来像这样:
586 700006207 8,622.09 896
586 700006207 9,882.82 896
777 68607099 900.00 896
587 800006207 7,059.22 896
587 800006207 959.02 896
587 800006207 697.87 896
7 280667985 .00 899
谢谢。
最佳答案
这可能对您有用:
sed ':a;$!N;/^\(\( [0-9]\+ *[0-9]\+\).*\n\)\( \{15\}\)/{s//\1\2/;ta};P;D' file
根据您提供的数据,行始终以空格开头。如果不是这种情况,则:
sed ':a;$!N;/^\(\([0-9]\+ *[0-9]\+\).*\n\)\( \{14\}\)/{s//\1\2/;ta};P;D' file
关于powershell - 如何用上一行的单词填充文本文件中的空白?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10111234/