tag para online mp3tag mp3meta windows command-line

windows - para - tag rename



Windows equivalente al comando ''cola'' (19)

¿Hay alguna forma de simular el comando * nix tail en la línea de comandos de Windows? Tengo un archivo y quiero una forma de cortar las primeras n líneas de texto. Por ejemplo:

D:/>type file.txt line one line two line three D:/>*[call to tail]* > result.txt D:/>type result.txt line two line three


Advertencia: utilizar el archivo por lotes para las funciones tokens y delims en el ingreso de texto desconocido puede ser un desastre debido a la interpretación especial de caracteres como &,!, <, Etc. Dichos métodos deben reservarse solo para texto predecible.


Aquí hay un comando de cabeza nativo rápido que le da las primeras 9 líneas en DOS.

findstr /n "." myfile.txt | findstr "^.:"

Los primeros 2 caracteres en cada línea serán el número de línea.


Bueno, esto lo hará , pero es tan rápido como parece (aproximadamente O (n * m), donde n es el número de líneas para mostrar ym es el número total de líneas en el archivo):

for /l %l in (1,1,10) do @for /f "tokens=1,2* delims=:" %a in (''findstr /n /r "^" filename ^| findstr /r "^%l:"'') do @echo %b

Donde "10" es el número de líneas que desea imprimir, y "nombre de archivo" es el nombre del archivo.


Cuando use más + n que Matt ya mencionó, para evitar pausas en archivos largos, intente esto:

más +1 myfile.txt> con

Cuando redirige el resultado de más, no se detiene, y aquí lo redirecciona a la consola. De manera similar, puede redirigir a otro archivo como este sin las pausas de más si ese es su resultado final deseado. Use> para redirigir al archivo y sobrescribirlo si ya existe, o >> para agregarlo a un archivo existente. (Puede usar cualquiera de los dos para redirigir a con.)


Este es un truco total, pero si se trata de un archivo enorme que solo quiere examinar el formato, encabezado, etc., y está buscando una solución, siempre puede redirigir la salida ''más'' a un nuevo archivo y CTRL-C con rapidez. Las filas de salida no se pueden controlar con precisión y lo más probable es que lo mate en el medio de una línea de salida, pero es una forma económica de capturar un poco de un archivo inutilizable.

Ex.

C:/more test.csv > test.txt
^C C:/more test.txt
line 1
line 2
etc...... C:/


FWIW, para aquellos que solo necesitan cortar un número indeterminado de registros del encabezado del archivo, más> funciona bien. Esto es útil solo para tener un archivo más pequeño con el que trabajar en las primeras etapas de desarrollo de algo.



Hay una herramienta head gratuita en esta página que puede usar. No lo he intentado.


No creo que haya una forma de salir de la caja. No existe tal comando en DOS y los archivos por lotes están muy limitados para simularlo (sin mayor dolor).


No he intentado extraer un rango, pero pude obtener una línea usando el siguiente comando de DOS:

find /N " " *.log|find "[6]"

Como la mayoría de los archivos contienen espacios, este comando extrae cada línea de todos los archivos de LOG y básicamente los numera comenzando desde 1 para cada archivo. Los resultados numerados se canalizan en el segundo comando FIND que busca la línea etiquetada como número 6.


Potencia Shell:

Get-Content C:/logs/result.txt -Tail 10 Get-Content C:/logs/result.txt -wait (monitor the tail)


Puede obtener CoreUtils de GnuWin32 , que es una colección de herramientas estándar de Unix, portado a Windows.

Es, entre otras cosas, contiene la cabeza.


Si desea el comando principal, una manera fácil de obtenerlo es instalar Cygwin. Entonces tendrá todas las herramientas de UNIX a su disposición.

Si esa no es una buena solución, puede intentar usar findstr y hacer una búsqueda para el indicador de fin de línea.

findstr en MSDN: http://technet.microsoft.com/en-us/library/bb490907.aspx


Sin equivalente exacto. Sin embargo, existe un comando nativo de DOS "más" que tiene una opción + n que comenzará a generar el archivo después de la enésima línea:

Indicación de DOS:

C:/>more +2 myfile.txt

El comando anterior generará todo después de las primeras 2 líneas.
Esto es realmente el inverso de la cabeza de Unix:

Consola de Unix:

root@server:~$ head -2 myfile.txt

El comando anterior solo imprimirá las primeras 2 líneas del archivo.


también puedes usar Git bash donde también se emulan la cabeza y la cola


Get-content -Tail n file.txt con powershell es lo único que se acerca a tail en Linux.

El Get-Content *filename* | Select-Object -last *n* Get-Content *filename* | Select-Object -last *n* sugerido arriba carga / analiza todo. Huelga decir que no estaba contento con mi archivo de registro de 10 GB ... La opción -Tail comienza al final del archivo.


Si tiene Windows PowerShell instalado (creo que está incluido desde XP), puede ejecutar desde cmd.exe:

Jefe de Comando:

powershell -command "& {Get-Content *filename* -TotalCount *n*}"

Comando de la cola:

powershell -command "& {Get-Content *filename* | Select-Object -last *n*}"

o directamente desde PowerShell:

Get-Content *filename* -TotalCount *n* Get-Content *filename* | Select-Object -last *n*


actualizar

PowerShell 3.0 (Windows 8 y superior) agregó Tail comando Tail con alias Last . También se agregaron Head y First aliases a TotalCount .

Entonces, los comandos se pueden volver a escribir como

Get-Content *filename* -Head *n* Get-Content *filename* -Tail *n*


more /e filename.txt P n

donde n = el número de filas para mostrar. Funciona rápido y es exactamente como el comando principal.


set /p line= < file.csv echo %line%

devolverá la primera línea de su archivo en cmd Windows en la variable% línea%.