Anything like dos2unix for Windows?
Solution 1
You can use Notepad++.
The instructions to convert a directory recursively are as follows:
- Menu: Search -> Find in Files...
- Directory = the directory you want to be converted to Unix format, recursively. E.g., C:\MyDir
- Find what =
\r\n
- Replace with =
\n
- Search Mode = Extended
- 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
- how to convert a file from DOS to Unix
- How to convert DOS line endings to UNIX on a Windows machine
- Powershell v2: Replace CRLF with LF
For bigger files you may want to use the buffering solutions in Replace CRLF using powershell
Elvin
Updated on January 02, 2022Comments
-
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