I have to convert an entire directory using dos2unix
. I am not able to figure out how to do this.
相关问题
- Is shmid returned by shmget() unique across proces
- how to get running process information in java?
- Error building gcc 4.8.3 from source: libstdc++.so
- Why should we check WIFEXITED after wait in order
- Null-terminated string, opening file for reading
find . -type f -print0 | xargs -0 dos2unix
Will recursively find all files inside current directory and call for these files dos2unix command
For any Solaris users (am using 5.10, may apply to newer versions too, as well as other unix systems):
dos2unix doesn't default to overwriting the file, it will just print the updated version to stdout, so you will have to specify the source and target, i.e. the same name twice:
If there is no sub-directory, you can also take
As I happened to be poorly satisfied by dos2unix, I rolled out my own simple utility. Apart of a few advantages in speed and predictability, the syntax is also a bit simpler :
And if you want it to go down into subdirectories (skipping hidden dirs and non-text files) :
endlines
is available here https://github.com/mdolidon/endlinesIt's probably best to skip hidden files and folders, such as
.git.
So instead of usingfind
, if yourbash
version is recent enough or if you're usingzsh
, just do:Note that for Bash, this will require:
....but this is a useful enough feature that you should honestly just put it in your
.bashrc
anyway.If you don't want to skip hidden files and folders, but you still don't want to mess with
find
(and I wouldn't blame you), you can provide a second recursive-glob argument to match only hidden entries:Note that in both cases, the glob will expand to include directories, so you will see the following warning (potentially many times over):
Skipping <dir>, not a regular file.