[Bash] String in Integer umwandeln

  • Hallo,


    habe hier ein kleines, peinliches Problem ;)


    Ich lese aus einer Datei zeilenweise aus und ermittle nach einem best. Schema eine Zahl. Hier wird u.a. durch cut der String beschnitten.
    Nun beinhaltet mein Variable den String "116", welcher mich ziemlich an eine Zahl/Integer erinnert.


    Was muss ich tun, dass hieraus tatsächlich eine Zahl wird, da ich weder mit let noch mit bc hier weiterrechnen kann?


    TIA!

  • Wo ist das Problem?

    Code
    [root@host ~]# a=`echo "Das ist ein1661String"| cut -d "1" -f 2`
    [root@host ~]# echo "$a * 2"| bc
    132

    Glotze: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
    Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P

  • Das würd ich auch gern wissen :lol2



    Warum will das nicht? In der Variablen stehen ausschließlich eine Zahl


    Vllt. noch relevant: UTF-8-System

  • wie wär's mit

    Code
    echo "hallo Z1261ahl" | tr -c '[:digit:]' ' ' | tr -d ' '


    alternativ

    Code
    echo "hallo Z1261ahl und z67ahl" | tr -c '[:digit:]' ' '|awk '{print $2}'
  • Zitat

    Originally posted by killajoe
    Das würd ich auch gern wissen :lol2
    Warum will das nicht? In der Variablen stehen ausschließlich eine Zahl


    Ich vermute mal, da ist evtl. noch ein Leerzeichen am Ende.


    Also nicht "116", sondern "116 ".

    Code
    echo "-$Episode_abs-"

    Glotze: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
    Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P

  • Hi,


    mit einer anderen Test-Datei hat es funktioniert. Diese habe ich aber auch auf diesem System angelegt.
    Die ursprüngliche File stammt von XP und wurde von mir mit Notepad++ ins Unix- und UTF-8-Format konvertiert. Keine Ahnung warum es mit dem UTF-8-Format Probs gibt, denn mit "UTF-8 ohne BOM" klappt es nun.
    Keine Ahnung was BOM ist, aber ich find's gut :lol2

  • Moin!


    "BOM" ist der byte order mark, das sind ein paar Bytes am Anfang der Datei, anhand derer man die Kodierung der Textdatei ermitteln kann. Und dadruch verschieben sich deine Positionsangaben. Umlaute z.B. haben in Unicode auch mehr als 1 Zeichen, musst du das vielleicht auch berücksichtigen?


    mini.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!