我有一个很大的报告文件(大约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/

10-10 18:19