Powershell取代逃脱

时间:2014-12-12 08:50:56

标签: powershell

我希望我可以用分号更改用第一个空格替换的字符串:

前:

  

drwxrwxrwx 2 tot toto 4096 12月11日12:34 fdf fdfd

我想要这样的事情:

  

drwxrwxrwx; 2; tot; toto; 4096; Dec; 11; 12:34; fdf fdfd

2 个答案:

答案 0 :(得分:1)

一种可能性:

$string = 'drwxrwxrwx 2 tot toto 4096 Dec 11 12:34 fdf fdfd'
$string -split ' ',9 -join ';'

drwxrwxrwx;2;tot;toto;4096;Dec;11;12:34;fdf fdfd

或使用字符串拆分方法:

$string = 'drwxrwxrwx 2 tot toto 4096 Dec 11 12:34 fdf fdfd'
$string.split(' ',9) -join ';'

drwxrwxrwx;2;tot;toto;4096;Dec;11;12:34;fdf fdfd

答案 1 :(得分:0)

使用callback函数替换行的前8个元素后面的空格:

PS C:\> $callback = { $args[0] -replace ' +', ';' }
PS C:\> $re = [regex]'^(\S+ +){8}'
PS C:\> $str = 'drwxrwxrwx 2 tot toto 4096 Dec 11 12:34 fdf fdfd'
PS C:\> $re.Replace($str, $callback)
drwxrwxrwx;2;tot;toto;4096;Dec;11;12:34;fdf fdfd
PS C:\> $str = 'drwxrwxrwx 2 tot toto 4096 Dec 11 12:34 a b c d e'
PS C:\> $re.Replace($str, $callback)
drwxrwxrwx;2;tot;toto;4096;Dec;11;12:34;a b c d e