Tengo un archivo .txt con números ordenados de esta manera (en la misma fila):
106849_01373 106849_01967 106850_00082 23025.7_01059
Me gustaría convertirlos así:
106849_01373
106849_01967
106850_00082
23025.7_01059
No tengo idea de qué comando usar. puede alguien ayudarme con esto?
command-line
text-processing
Annemieke Smet
fuente
fuente
Bastante fácil con
tr
:Ejemplo:
fuente
La respuesta de heemayl es el camino a seguir, sin embargo, aquí hay una alternativa con Perl:
-l
: habilita el procesamiento automático de final de línea. Tiene dos efectos separados. Primero, automáticamente divide $ / (el separador de registro de entrada) cuando se usa con -n o -p. En segundo lugar, asigna $ \ (el separador de registro de salida) para tener el valor de octnum, de modo que cualquier declaración de impresión tendrá ese separador agregado nuevamente. Si se omite octnum, establece $ \ en el valor actual de $ /.-a
: activa el modo de división automática cuando se usa con -n o -p. Un comando de división implícito para la matriz @F se realiza como lo primero dentro del bucle while implícito producido por -n o -p.-n
: hace que Perl asuma el siguiente ciclo alrededor de su programa, lo que lo hace iterar sobre argumentos de nombre de archivo algo así como sed -n o awk:-e
: puede usarse para ingresar una línea de programa;$,="\n"
: establece el separador de campo de salida en una nueva línea;print(@F)
: imprime los campos separados por el separador de campo de salida.fuente
AWK
Acercarse. Básicamente, cambiar el separador de salida para campos y bucles. El archivo de prueba es su ejemplo pegado una y otra vez con ENDLINE al finalfuente
Utilizando
sed
:fuente
Solo agrego una solución de Python por diversión:
Este comando ejecuta el script de Python 3 de una línea en 'comillas simples' con el nombre de archivo que desea convertir como argumento al final. La sintaxis es así:
El script de 1 línea que utilizamos es el siguiente (expandido a varias líneas para mayor claridad):
Importa el
sys
módulo para leer argumentos de línea de comandos, toma el primer argumento dado como nombre de archivo para abrir e imprime cada fragmento de datos separados por espacios en blanco del archivo en una sola línea.fuente