linux - tag - musicbrainz picard
¿Cómo concatenar múltiples líneas de salida a una línea? (6)
Aquí está el método que usa el editor ex :
J oin todas las líneas y p rint a la salida estándar:
$ ex +%j +%p -scq! fileJ oin todas las líneas en el lugar (en el archivo):
$ ex +%j -scwq fileNota: ¡Esto concatenará todas las líneas dentro del archivo en sí mismo!
Si ejecuto el comando cat file | grep pattern cat file | grep pattern , obtengo muchas líneas de salida. ¿Cómo se concatenan todas las líneas en una línea, reemplazando efectivamente cada "/n" con "/" " (final con " seguido de espacio ")?
cat file | grep pattern | xargs sed s//n/ /g cat file | grep pattern | xargs sed s//n/ /g no funciona para mí.
En bash echo sin comillas, eliminar devoluciones de carro, pestañas y espacios múltiples
echo $(cat file)
Esto podría ser lo que quieras
cat file | grep pattern | paste -sd'' ''
En cuanto a su edición, no estoy seguro de lo que significa, ¿quizás esto?
cat file | grep pattern | paste -sd''~'' | sed -e ''s/~/" "/g''
(Esto supone que ~ no ocurre en el file )
La salida de tubería a xargs concatenará cada línea de salida a una sola línea con espacios:
grep pattern file | xargs
O cualquier comando, ej. ls | xargs ls | xargs . El límite predeterminado de la salida xargs es ~ 4096 caracteres, pero se puede aumentar con, por ejemplo. xargs -s 8192 .
grep xargs
Probablemente la mejor manera de hacerlo es usando la herramienta ''awk'' que generará salida en una línea
$ awk '' /pattern/ {print}'' ORS='' '' /path/to/file
Combinará todas las líneas en una con delimitador de espacio
Use tr ''/n'' '' '' para traducir todos los caracteres de nueva línea a espacios:
$ grep pattern file | tr ''/n'' '' ''
Nota: grep lee archivos, cat concatena archivos. No cat file | grep cat file | grep !
Editar:
tr solo puede manejar traducciones de un solo caracter. Puede usar awk para cambiar el separador de registros de salida como:
$ grep pattern file | awk ''{print}'' ORS=''" ''
Esto transformaría:
one
two
three
a:
one" two" three"