Supongamos que tengo un archivo:
Archivo1:
PAPER TEAM MANISH NISHA GARIMA JYOUTI ........etc
File2 quiero:
PAPER
TEAM
MANISH
NISHA
GARIMA
JYOUTI
Filas a la conversión de columna de File1.
awk
sed
text-formatting
yisha
fuente
fuente

Respuestas:
Utilizando
tr, reemplace cada carácter de espacio repetido () con un solo carácter de nueva línea (\n).Pero creo que quieres algo como esto?
1 2 3 4 1 a # abcd -> 2 b $ # $ @% 3 c @ 4 d%Con lo
awkque podríamos hacer:Esto une todas las mismas posiciones de número archivadas e
ENDimprime el resultado que sería la primera fila en la primera columna, la segunda fila en la segunda columna, etc. Por supuesto, el archivo de entrada está limitado al tamaño de su memoria.fuente
Simplemente podrías hacer esto a través de grep. Por defecto grep, imprimiría la coincidencia en una nueva línea separada.
O
fuente
grepTambién puedes usar el
fmtcomando:fuente
Con GNU datamash :
fuente
datamashParece la mejor herramienta para la tarea, ¡pero fascinante cuántas otras herramientas podrían usarse!También puedes hacer esto usando
sed:NOTA: No maneja la situación donde las palabras contienen espacios.
fuente
\ncomo nueva líneaUtilizando
awk, estableciendo el separador de campo de salida (OFS) como el separador de registro (línea) (RS):fuente
Usando un
forbucle:fuente
También puedes intentar usar
sedTenga en cuenta que estoy usando
@como separador para la operación de sustitución. Esto también creará un archivo de respaldo. En caso de que no necesite una copia de seguridad, elimine .bakfuente
Versión de Python:
Esto usa la
<redirección al stdin de pythoninput.txty escribe paraoutput.txtusar la>redirección. El one-liner en sí lee todas las líneas destdinuna lista de cadenas, donde todos los espacios se reemplazan con nuevas líneas, y reconstruimos todo el texto usando la.join()función.El enfoque alternativo para evitar que se reemplacen múltiples espacios en serie con líneas nuevas es utilizar
.split()para dividir la línea en una lista de palabras. De esa manera, podemos asegurarnos de que cada palabra esté separada solo por una nueva líneafuente
Usando
xargs, (robado de la respuesta de souravc ):O si se necesita algún reformateo menor, use
printfcadenas de formato como sea necesario:fuente
Mi solución sería:
fuente
fuente