tagger tag puddletag picard musicbrainz mp3tag español easytag linux bash unix grep tr

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! file

  • J oin todas las líneas en el lugar (en el archivo):

    $ ex +%j -scwq file

    Nota: ¡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"