我希望我可以用分号更改用第一个空格替换的字符串:
前:
drwxrwxrwx 2 tot toto 4096 12月11日12:34 fdf fdfd
我想要这样的事情:
drwxrwxrwx; 2; tot; toto; 4096; Dec; 11; 12:34; fdf fdfd
答案 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