使用Powershell的UNIX格式文件

ald*_*rin 7 unix windows powershell newline

如何在Powershell中创建unix文件格式?我使用以下来创建一个文件,但它总是以Windows格式创建它.

"hello world" | out-file -filepath test.txt -append
Run Code Online (Sandbox Code Playgroud)

据我所知,新行字符CRLF使其成为Windows格式文件,而unix格式只需要行末尾的LF.我尝试用以下内容替换CRLF,但它没有用

"hello world" | %{ $_.Replace("`r`n","`n") } | out-file -filepath test.txt -append
Run Code Online (Sandbox Code Playgroud)

And*_*der 10

PowerShell社区扩展中有一个名为ConvertTo-UnixLineEnding的Cmdlet


And*_*rin 6

一个丑陋的答案是(从dos.txt输出到unix.txt的输入):

[string]::Join( "`n", (gc dos.txt)) | sc unix.txt
Run Code Online (Sandbox Code Playgroud)

但我真的希望能够让Set-Content自己做这个,这个解决方案不会流,因此不适用于大文件......

而这个解决方案将结束文件与DOS行结束...所以它不是100%

  • 扩展你的解决方案,实际上有一种方法来编写字节并避免DOS行结束:sc unix.txt([byte []] [char []]"$ contenttext") - 编码字节 (5认同)