vacias una ultimas reemplazar quitar para lineas linea insertar eliminar con comando caracter borrar linux bash scripting shell sed

linux - una - ¿Cómo elimino las nuevas líneas de un archivo de texto?



sed linux eliminar linea (15)

Asumiendo que solo quiere mantener los dígitos y el punto y coma, lo siguiente debería ser el truco asumiendo que no hay problemas importantes de codificación, aunque también eliminará la última "nueva línea":

$ tr -cd ";0-9"

Puede modificar fácilmente lo anterior para incluir otros caracteres, por ejemplo, si desea retener puntos decimales, comas, etc.

Tengo la siguiente información, y necesito ponerlo todo en una línea.

Tengo esto:

22791 ; 14336 ; 22821 ; 34653 ; 21491 ; 25522 ; 33238 ;

Necesito este:

22791;14336;22821;34653;21491;25522;33238;

EDITAR

Ninguno de estos comandos funciona a la perfección.

La mayoría de ellos deja que los datos como este:

22791 ;14336 ;22821 ;34653 ;21491 ;25522


Dato curioso: use ASCII en su lugar.

tr -d ''/012'' < filename.extension

(Causa editada porque no vi la maldita respuesta que tenía la misma solución, la única diferencia era que la mía tenía ASCII)


Lo haría con awk, por ejemplo

awk ''/[0-9]+/ { a = a $0 ";" } END { print a }'' file.txt

(Una desventaja es que a se "acumula" en la memoria).

EDITAR

Olvidé sobre printf! Así también

awk ''/[0-9]+/ { printf "%s;", $0 }'' file.txt

o probablemente sea mejor, lo que ya se dio en otros ans usando awk.


Normalmente obtengo este uso cuando estoy copiando un fragmento de código de un archivo y quiero pegarlo en una consola sin agregar nuevas líneas innecesarias, terminé haciendo un alias bash
(Lo llamé en oneline si tienes curiosidad)

xsel -b -o | tr -d ''/n'' | tr -s '' '' | xsel -b -i

  • xsel -b -o lee mi portapapeles

  • tr -d ''/n'' elimina nuevas líneas

  • tr -s '' '' elimina espacios recurrentes

  • xsel -b -i lo devuelve a mi portapapeles

después de eso, pegaría los nuevos contenidos del portapapeles en línea en una consola o lo que sea.


Puedes editar el archivo en vim:

$ vim inputfile :%s//n//g


Si los datos están en file.txt, entonces:

echo $(<file.txt) | tr -d '' ''

El '' $(<file.txt) '' lee el archivo y da el contenido como una serie de palabras que ''eco'' se repite con un espacio entre ellas. El comando ''tr'' luego elimina cualquier espacio:

22791;14336;22821;34653;21491;25522;33238;


Usando el editor de texto gedit (3.18.3)

  1. Haga clic en Buscar
  2. Haga clic en Buscar y reemplazar ...
  3. Ingrese /n/s en el campo Buscar
  4. Deje Reemplazar con blanco (nada)
  5. Marque la casilla de expresión regular
  6. Haga clic en el botón Buscar

Nota: esto no aborda exactamente el problema original de OP de hace 7 años, pero debería ayudar a algunos usuarios novatos de Linux (como yo) que encuentran su camino desde la SE con preguntas similares sobre "¿Cómo obtengo mi texto todo en una línea?" .


Usando man 1 ed:

# cf. http://wiki.bash-hackers.org/doku.php?id=howto:edit-ed ed -s file <<< $''1,$j/n,p'' # print to stdout ed -s file <<< $''1,$j/nwq'' # in-place edit


utilizar

head -n 1 filename | od -c

para averiguar CUÁL es el personaje ofensivo. luego usa

tr -d ''/n'' <filename

para LF

tr -d ''/r/n'' <filename

para CRLF


xargs consume nuevas líneas también (pero agrega una nueva línea final):

xargs < file.txt | tr -d '' ''


$ perl -0777 -pe ''s//n+//g'' input >output

$ perl -0777 -pe ''tr//n//d'' input >output


paste -sd "" file.txt


perl -p -i -e ''s//R//g;'' filename

Debe hacer el trabajo.


tr -d ''/n'' < file.txt

O

awk ''{ printf "%s", $0 }'' file.txt

O

sed '':a;N;$!ba;s//n//g'' file.txt

Esta página here tiene muchos otros métodos para eliminar las nuevas líneas.

editado para eliminar el abuso felino :)


tr -d ''/n'' < yourfile.txt

Editar:

Si ninguno de los comandos publicados aquí funciona, entonces tiene algo más que una nueva línea que separa sus campos. Posiblemente tiene finales de línea DOS / Windows en el archivo (aunque yo esperaría que las soluciones Perl funcionen incluso en ese caso)?

Tratar:

tr -d "/n/r" < yourfile.txt

Si eso no funciona, entonces tendrá que inspeccionar su archivo más de cerca (por ejemplo, en un editor hexadecimal) para averiguar qué caracteres hay realmente allí que desea eliminar.