Anything like dos2unix for Windows?

64,860

Solution 1

You can use Notepad++.

The instructions to convert a directory recursively are as follows:

  1. Menu: Search -> Find in Files...
  2. Directory = the directory you want to be converted to Unix format, recursively. E.g., C:\MyDir
  3. Find what = \r\n
  4. Replace with = \n
  5. Search Mode = Extended
  6. Press "Replace in Files"

Solution 2

Solved it trough Notepad++.

Go to: Edit -> EOL Conversion -> Unix.

Solution 3

If you have perl installed, you can simply run:

perl -i -p -e "s/\r//" <filename> [<filename2> ...]

Solution 4

There are at least two resources:

  • dos2unix on SourceForge, which appears to be actively maintained (as of 2015), and has pre-compiled releases for Windows, both 32- and 64-bit. Also includes unix2dos, mac2unix, and unix2mac.
  • CygUtils from GnuWin32, which are miscellaneous utilities forked from Cygwin, which includes dos2unix as well as several other related utilities. This package is not actively maintained (last update was in 2008).

Solution 5

In PowerShell there are so many solutions, given a lot of tools in the .NET platform

With a path to file in $file = 'path\to\file' we can use

[IO.File]::WriteAllText($file, $([IO.File]::ReadAllText($file) -replace "`r`n", "`n"))

or

(Get-Content $file -Raw).Replace("`r`n","`n") | Set-Content $file -Force

It's also possible to use -replace "`r", "" instead

To do that for all files just pipe the file list to the above commands:

Get-ChildItem -File -Recurse | % { (Get-Content -Raw `
    -Path $_.Fullname).Replace ("`r`n", "`n") | Set-Content -Path $_.Fullname }

See

For bigger files you may want to use the buffering solutions in Replace CRLF using powershell

Share:
64,860
Elvin
Author by

Elvin

Updated on January 02, 2022

Comments

  • Elvin
    Elvin over 2 years

    I have some shell scripts created on windows I want to run dos2unix on them.

    But as I have read that dos2unix works in Linux environment so, is there a way that I can convert my files to UNIX format while working in Windows?

    I have already installed CYGWIN but I am facing some issues as

    Administrator@SGH735082N ~
    $ pwd
    /home/Administrator
    
    Administrator@SGH735082N ~
    $ cd C:\CVS Code
    
    Administrator@SGH735082N /cygdrive/c/CVS
    $ dos2Unix BLPDB000
    BLPDB000:
    dos2Unix processing BLPDB000: No such file or directory
    
    Administrator@SGH735082N /cygdrive/c/CVS
    $ dos2Unix -h
    dos2Unix: bad argument -h: unknown option
    
    Administrator@SGH735082N /cygdrive/c/CVS
    $ dos2Unix --help
    dos2Unix version 0.1.3
      converts the line endings of text files from
      DOS style (0x0d 0x0a) to UNIX style (0x0a)
    
    Usage: dos2Unix [OPTION...] [input file list...]
    
    Main options (not all may apply)
      -A, --auto     Output format will be the opposite of the autodetected source
                     format
      -D, --u2d      Output will be in DOS format
      --unix2dos     Output will be in DOS format
      -U, --d2u      Output will be in UNIX format
      --dos2unix     Output will be in UNIX format
      --force        Ignore binary file detection
      --safe         Do not modify binary files
    
    Help options
      -?, --help     Show this help message
      --usage        Display brief usage message
      --version      Display version information
      --license      Display licensing information
    
    Other arguments
      [input file list...]       for each file listed, convert in place.
                                 If none specified, then use stdin/stdout
    
    Administrator@SGH735082N /cygdrive/c/CVS
    $
    
    Administrator@SGH735082N /cygdrive/c/CVS
    $ dos2Unix  -oBLPDB000
    dos2Unix: bad argument -oBLPDB000: unknown option
    
    Administrator@SGH735082N /cygdrive/c/CVS
    $ dos2Unix -k BLPDB000
    dos2Unix: bad argument -k: unknown option
    
    Administrator@SGH735082N /cygdrive/c/CVS
    $ dos2Unix BLPDB000.txt
    BLPDB000.txt:
    dos2Unix processing BLPDB000.txt: No such file or directory
    
    Administrator@SGH735082N /cygdrive/c/CVS
    $ pwd
    /cygdrive/c/CVS