powershell - 如何用上一行的单词填充文本文件中的空白?

标签 powershell sed grep

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

相关文章:

powershell - 添加-AzureAccount : Federated service - Error: ID3242

linux - 在日志文件中计算时间

bash - sed 删除 # 和 ;文件中对特定关键字的评论

linux - 在多行错误日志中搜索错误代码,然后在 Linux 上搜索其中的一些参数

Powershell CheckedListBox 检查是否在字符串/数组中

xml - PowerShell XML 输出

regex - 从多个文本文件名中提取行,然后从文本文件中提取这些行 - Linux

linux - 通过检查多个条件提取字符串的一部分 - Shell 脚本

unix - 多个 grep 搜索/忽略模式

powershell - azure VM中未加载指定的模块 'SQLPS'