He

sed -e '/^ *[0-9]\+ *$/d' <oldtextfile >newtextfile

…que yo uso en el texto que he copiado y pegado de archivos Pdf para quitar los números de página. Sin embargo, también tengo que quitar notas a pie de página, así que tengo que modificar el anterior sed la línea para hacer que al borrar todos los dígitos que ocurren después de un período de tiempo, y por desgracia, tengo muy poca paciencia para sed. Alguien me puede ayudar?

InformationsquelleAutor magnetar | 2011-03-22

5 Comentarios

  1. 7
    sed 's/\.[0-9]*/./g'

    Que probablemente no hace lo que quieres hacer, así que dime, más precisamente, de lo que quieres hacer.

    • trabajó para mí, en realidad. gracias.
  2. 2

    En Windows de todos modos, sed necesita una vía de escape a reconocer + como un modificador de la \+. Yo he peleado con que un montón de veces y sólo se descubre ahora desde aquí: http://www.gnu.org/software/sed/manual/sed.html#Regular-Expressions

    Así que usted podría utilizar geofftnz la solución como:

    C:\Users\Me>cat test.txt | sed "s/\.[0-9]\+//g"
    • dios, me he quedado atrapado en esto por un tiempo… ya sea de uso -r o escapar de la + ¡Gracias!
  3. 1

    Estoy en windows, con alguna versión de sed que no puede ser totalmente estándar, pero esto es lo que yo hice:

    cat test.txt | sed "s/\.[0-9][0-9]*//g"

    (Mi sed no reconocer un + para regex)

    C:\Users\Me>cat test.txt
    Hello, this is a file
    with some .2346 stuff I want to remove.
    
    .this stuff I dont.
    
    What about some more: .99123how's that?
    
    Normal number: 1234
    
    C:\Users\Me>cat test.txt | sed "s/\.[0-9][0-9]*//g"
    Hello, this is a file
    with some  stuff I want to remove.
    
    .this stuff I dont.
    
    What about some more: how's that?
    
    Normal number: 1234
  4. 0

    Ya que no da ningún ejemplo de la entrada, voy a tener que asumir el peor escenario, que es donde tiene los números incrustados entre las letras y desea mantener las letras.

    Ejemplo: foo123.bar465baz789qux

    En ese caso creo que awk sería la mejor herramienta

    awk -F'.' '{gsub("[[:digit:]]","",$2)}1' OFS='.' oldtextfile > newtextfile

    Prueba de Concepto

    $ echo "foo123.bar456baz789qux" | awk -F'.' '{gsub("[[:digit:]]","",$2)}1' OFS='.'
    foo123.barbazqux
  5. 0

    Sé que esto es un millón de años de edad, pero realmente una respuesta corta es

    cat yourfile.txt| |tr -d "[0-9]" > newfile.txt

Dejar respuesta

Please enter your comment!
Please enter your name here