私は、WindowsのコマンドICACLS cの結果である。このようなファイルがあります:\パスを/トン> output.txtとawkが前の行に基づいて行に空のスペースを置き換えるためにsedを
C:\temp\2\ok Everyone:(I)(RX)
BUILTIN\Administrators:(I)(F)
NT AUTHORITY\SYSTEM:(I)(F)
BUILTIN\Users:(I)(RX)
NT AUTHORITY\Authenticated Users:(I)(M)
C:\temp\2\ok.txt Everyone:(I)(RX)
BUILTIN\Administrators:(I)(F)
NT AUTHORITY\SYSTEM:(I)(F)
BUILTIN\Users:(I)(RX)
NT AUTHORITY\Authenticated Users:(I)(M)
C:\temp\2\ok1.txt Everyone:(I)(RX)
BUILTIN\Administrators:(I)(F)
NT AUTHORITY\SYSTEM:(I)(F)
BUILTIN\Users:(I)(RX)
NT AUTHORITY\Authenticated Users:(I)(M)
C:\temp\2\ok2.txt Everyone:(I)(RX)
BUILTIN\Administrators:(I)(F)
NT AUTHORITY\SYSTEM:(I)(F)
BUILTIN\Users:(I)(RX)
NT AUTHORITY\Authenticated Users:(I)(M)
C:\temp\2\test1.ps1 Everyone:(I)(RX)
BUILTIN\Administrators:(I)(F)
NT AUTHORITY\SYSTEM:(I)(F)
BUILTIN\Users:(I)(RX)
NT AUTHORITY\Authenticated Users:(I)(M)
私はそれが完全に空ではない空のスペースに先行する行を挿入する必要があります。良いことは、空のスペースは常に前の行に基づく文字数と同じであることです。
所望の出力
私はこのような何かしようとしたC:\temp\2\ok Everyone:(I)(RX)
C:\temp\2\ok BUILTIN\Administrators:(I)(F)
C:\temp\2\ok NT AUTHORITY\SYSTEM:(I)(F)
C:\temp\2\ok BUILTIN\Users:(I)(RX)
C:\temp\2\ok NT AUTHORITY\Authenticated Users:(I)(M)
C:\temp\2\ok.txt Everyone:(I)(RX)
C:\temp\2\ok.txt BUILTIN\Administrators:(I)(F)
C:\temp\2\ok.txt NT AUTHORITY\SYSTEM:(I)(F)
C:\temp\2\ok.txt BUILTIN\Users:(I)(RX)
C:\temp\2\ok.txt NT AUTHORITY\Authenticated Users:(I)(M)
C:\temp\2\ok1.txt Everyone:(I)(RX)
C:\temp\2\ok1.txt BUILTIN\Administrators:(I)(F)
C:\temp\2\ok1.txt NT AUTHORITY\SYSTEM:(I)(F)
C:\temp\2\ok1.txt BUILTIN\Users:(I)(RX)
C:\temp\2\ok1.txt NT AUTHORITY\Authenticated Users:(I)(M)
C:\temp\2\ok2.txt Everyone:(I)(RX)
C:\temp\2\ok2.txt BUILTIN\Administrators:(I)(F)
C:\temp\2\ok2.txt NT AUTHORITY\SYSTEM:(I)(F)
C:\temp\2\ok2.txt BUILTIN\Users:(I)(RX)
C:\temp\2\ok2.txt NT AUTHORITY\Authenticated Users:(I)(M)
C:\temp\2\test1.ps1 Everyone:(I)(RX)
C:\temp\2\test1.ps1 BUILTIN\Administrators:(I)(F)
C:\temp\2\test1.ps1 NT AUTHORITY\SYSTEM:(I)(F)
C:\temp\2\test1.ps1 BUILTIN\Users:(I)(RX)
C:\temp\2\test1.ps1 NT AUTHORITY\Authenticated Users:(I)(M)
:2つのファイルを入手し、それらを一緒に貼り付けるために をしかし、問題は、予想外のスペースalwatsは私がWindowsのawkを使用していることをsedをしています(オーダーネジことです私は二重引用符)
awk "{line=$2} {print NF?line:\"\"}" OUTPUT
awk "{line=$1} {print NF?line:\"\"}" OUTPUT
awk -F":" "{line=$2} {print NF?line:\"\"}" OUTPUT
awk -F":" "{line=$1} {print NF?line:\"\"}" OUTPUT
を使用する理由私はに続いて、他のアイデア
が実際に左揃えで "最初" の行されている他の方法でのawkを試してみましょうファイル、またはそれらの前にスペースがありますか? – ghoti
これらのスペースは間違って追加されましたが、実際にはスペースはありません – Eduardo
@Eduardo:あなたのスタートラインは常に 'Everyone:(I)(RX)'を持っていますか? – batMan