Search code examples
powershellnewlineline-endings

How can I keep UNIX LF line endings?


I have a large (9 GiB), ASCII encoded, pipe delimited file with UNIX-style line endings; 0x0A.

I want to sample the first 100 records into a file for investigation. The following will produce 100 records (1 header record and 99 data records). However, it changes the line endings to DOS/Winodws style; CRLF, 0x0D0A.

Get-Content -Path .\wellmed_hce_elig_20191223.txt |
    Select-Object -first 100 |
    Out-File -FilePath .\elig.txt -Encoding ascii

I know about iconv, recode, and dos2unix. Those programs are not on my system and are not permitted to be installed. I have searched and found a number of places on how to get to CRLF. I have not found anything on getting to or keeping LF.

How can I produce the file with LF line endings instead of CRLF?


Solution

  • You could join the lines from the Get-Content cmdlet with the Unix "`n" newline and save that.

    Something like

    ((Get-Content -Path .\wellmed_hce_elig_20191223.txt | 
            Select-Object -first 100) -join "`n") |
            Out-File -FilePath .\elig.txt -Encoding ascii -NoNewLine