我有几行被破坏,我希望这些行被移动到前一行
我需要帮助才能修复此文件 来源:
Path : Microsoft.PowerShell.Core\FileSystem::\\eiesc1\Ser
vice_Legal
Access : BUILTIN\Administrators Allow FullControl
MLIDDOMAIN1\Domain Admins Allow FullControl
MLIDDOMAIN1\acl_corp_gs_legal Allow Modify, Synchronize
-----------------------
Path : Microsoft.PowerShell.Core\FileSystem::\\eiesc1\balco
Access : Everyone Allow FullControl
Everyone Allow 268435456
-----------------------
Path : Microsoft.PowerShell.Core\FileSystem::\\eiesc1\BCDRP
lanning
Access : Everyone Allow FullControl
Everyone Allow 268435456
-----------------------
预期结果:
Path : Microsoft.PowerShell.Core\FileSystem::\\eiesc1\Service_Legal
Access : BUILTIN\Administrators Allow FullControl
-----------------------
Path : Microsoft.PowerShell.Core\FileSystem::\\eiesc1\balco
Access : Everyone Allow FullControl
Everyone Allow 268435456
-----------------------
Path : Microsoft.PowerShell.Core\FileSystem::\\eiesc1\BCDRPlanning
Access : Everyone Allow FullControl
Everyone Allow 268435456
-----------------------
我只能运行awk "/Path/{a=1;next}/Access/{a=0}a"
来查找哪些线路被破坏,但我不知道如何移动这些线路。
答案 0 :(得分:1)
您希望暂停打印Path
行,直到您看到下一行,如果下一行不是Access
行,那么您要打印两条线在一起。
类似的东西:
/Path/ {
a=$0
next
}
a && !/Access/ {
gsub(/^ */, "")
printf "%s",a
print
a=""
next
}
1
答案 1 :(得分:1)
sed '/^Path/{N;s/\n //;}'