![](/img/trans.png)
[英]How can I print out the second word from each line of a file in powershell?
[英]How can I fill out blank spaces in a text file with the word from the line above?
我有一個大型報告文件(大約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
如果值與上面的行相同,則在第1列和第2列上有空白。 我需要幫助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
假設沒有空白行,並且列間分隔符是空格,以下工作(在Ubuntu / bash shell中測試,使用GNU sed)...
sed -r "/^ {15}/{G; s/^ {15}(.*)\n(.{15}).*/\2\1/};h" "report"
假設您需要保留間距,前兩列是前15個字符:
awk '
NF==2 {print fill substr($0, 16); next}
{print; fill = substr($0, 1, 15)}
'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.