Aquí está la forma pura de PowerShell si está interesado.
Búsqueda de archivos con al menos una línea que termina UNIX (PowerShell v1):
dir * -inc *.txt | %{ if (gc $_.FullName -delim "`0" | Select-String "[^`r]`n") {$_} }
Aquí es cómo encontrar y encubiertas finales de línea de UNIX a finales de línea de Windows. Una cosa importante a tener en cuenta es que se agregará un final de línea adicional (\ r \ n) al final del archivo si todavía no hay una línea que termina al final. Si realmente no quieres eso, publicaré un ejemplo de cómo puedes evitarlo (es un poco más complejo).
Get-ChildItem * -Include *.txt | ForEach-Object {
## If contains UNIX line endings, replace with Windows line endings
if (Get-Content $_.FullName -Delimiter "`0" | Select-String "[^`r]`n")
{
$content = Get-Content $_.FullName
$content | Set-Content $_.FullName
}
}
Los trabajos anteriores porque PowerShell dividirá automáticamente el contenido en \ n (dejando caer \ r si es que existen) y luego añadir \ r \ n cuando se escribe cada cosa (en este caso una línea) al archivo . Es por eso que siempre termina con una línea que termina al final del archivo.
Además, escribí el código anterior para que solo modifique los archivos que necesita. Si no te importa, puedes eliminar la declaración if. Oh, asegúrese de que solo los archivos lleguen al objeto ForEach. Aparte de eso, puede hacer el filtrado que desee al comienzo de esa canalización.
http: // superuser.com/questions/27060/batch-convert-files-for-encoding-or-line-ending-under-windows/ –
Para las personas que piensan que necesitan hacer esto debido a un error de git repo, es posible que no. Es posible solucionar este problema con git de otras maneras, como: http://stackoverflow.com/questions/1510798/trying-to-fix-line-endings-with-git-filter-branch-but-having-no- suerte/1511273 # 1511273 –