Regulärer Ausdruck?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
pcace
Beiträge: 239
Registriert: 28.08.2011 01:08:55

Regulärer Ausdruck?

Beitrag von pcace » 08.11.2019 19:44:44

Hallo,

ich kämpfe grad mit einem kleinen Script welches ein textfile ausliest und darin eine zahl ändern soll...
kann mir da jemand helfen wie ich das am besten angehe? Ich dachte an sed und einen regulären ausdruck (vollkommene Zauberei für mich...)

Der Textausschnitt sieht so aus:

Code: Alles auswählen

      "id": "4f06b9bd-1563-4e9c-b694-ae8f2fc0ae1e",
      "comment": "",
      "command": "open",
      "target": "/expose/113863229",
      "targets": [],
      "value": ""
    }, {
Die 113863229 soll ausgetauscht werden (mit einer Variable die dem Script übergeben wird).
Die auszutauschende Zahl ist immer gleich lang.

Vielleicht kann das ja jemand aus dem ff?

Bis dahin,

pcace

Benutzeravatar
TRex
Moderator
Beiträge: 8317
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: Regulärer Ausdruck?

Beitrag von TRex » 08.11.2019 20:20:33

In der Annahme, dass es nur ein Vorkommen der Länge 9 hinter jener URL gibt:

Code: Alles auswählen

sed -E "s#/expose/[0-9]{9}#/expose/$(id -u)#"
Alternative, falls das für dich funktioniert mit Debianjq:

Code: Alles auswählen

$ echo '{
    "employee": {
        "name":       "sonoo",
        "salary":      56000,
        "married":    true
    }
}  ' | jq '.employee.name = "qwak"'
{
  "employee": {
    "name": "qwak",
    "salary": 56000,
    "married": true
  }
}
Ich vermute, dass das in einer Liste ist, das würde es etwas verkomplizieren, aber jq würde das auch hinbekommen.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Benutzeravatar
whisper
Beiträge: 3375
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: Regulärer Ausdruck?

Beitrag von whisper » 08.11.2019 20:39:42

Die Lösung ist ja bereits genannt, aber hier für den OPoster:
Gerade heute brauchte ich auch eine Regex für ein bash Script. Ich nehme dann immer https://aurelio.net/projects/txt2regex/
Das schöne daran ist, dass es gleich alle möglichen Varianten zeigt :-)
Edith sagt: Ups, das ist sogar im Repo: Debiantxt2regex
Alter ist übrigens keine Ausrede, nur Erfahrung, die sich stapelt. 😉

Antworten