cartun: kann sed nicht mit regulären ausdrücken arbeiten?

Hallo liebes Forum,

kaum war ich ein paar Wochen ausser landes muss ich wieder um eure Hilfe bitten.
Kann sed (linux bash) nicht mir normalen Regulären Ausdrücken arbeiten?
Ich versuche vergeblich alle Webadressen in einer Datei zu ersetzen mit dem wort URL, hier mal mein Kommando:
-----------------------------------------------------
sed 's/[A-z].[A-z]+[0-9]+?.[A-z]+/\URL/g' test.html

habe diesen Ausdruck auch mit awk überprüft, awk findet die Webadressen.
Danke für eure Hilfe!

shutdown -cartun

--
Gestern standen wir noch am Abgrund, heute sind wir einen entscheidenden Schritt weiter.
  1. Hi,

    Ich versuche vergeblich alle Webadressen in einer Datei zu ersetzen mit dem wort URL, hier mal mein Kommando:
    sed 's/[A-z].[A-z]+[0-9]+?.[A-z]+/\URL/g' test.html

    [.[0.[
    ist für Dich eine Webadresse?

    google.de
    ist für Dich keine Webadresse?

    Was definierst Du denn als Webadresse? Anhand des regulären Ausdrucks kann ich mir das nicht so ganz vorstellen.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. Moin.

      [A-z]+.
      www.

      [A-z]+[0-9]+?.
      eineDomainMitEvtlAuchZahlen.

      [A-z]+
      de
      org
      com

      was auch immer.
      Das soll nur ein Test sein, ich weiss das es auch andere andressen gibt aber ich lerne erst gerade sed kennen.
      Dieser Reguläre Ausdruck muss aber richtig sein das awk mir Meldet er findet die Webadressen.

      shutdown -cartun

      --
      Gestern standen wir noch am Abgrund, heute sind wir einen entscheidenden Schritt weiter.
      1. Hallo cartun,

        [A-z]

        ein Buchstabe (groß oder klein) oder eines von []^_`

        .

        ein Punkt

        [A-z]+

        mehrere Buchstaben (groß oder klein) oder eines von []^_`

        [0-9]+?

        mehrere oder keine Zahlen (für {0,} gibt es übrigens kurz auch *)

        .

        ein Punkt

        [A-z]+
        mehrere Buchstaben (groß oder klein) oder eines von []^_`

        Damit ist – wie Johannes schon sagte – [.]1.\ eine URL, www.google.de keine.

        Tipps:
        * nimm [A-Za-z], wenn du auf große und kleine Buchstaben matchen willst, oder verwende das i-Flag, wenn du insgesamt Groß- und Kleinschreibung ignorieren willst.
        * es gibt auch URLs ohne www. davor (google.de zum Beispiel) und mit mehr als einer Subdomain davor (forum.de.selfhtml.org zum Beispiel). Möglich wäre zum Beispiel ([a-zA-Z0-9-_].)+

        Viele Grüße aus Freiburg,
        Marian

        --
        Microsoft broke Volkswagen's world record: Volkswagen made only 22 million bugs!
        <!--[if IE]><meta http-equiv="refresh" content="0; URL=http://www.getfirefox.com"><[endif]-->
        1. gudn tach!

          [A-z]
          ein Buchstabe (groß oder klein) oder eines von []^_`

          ack.

          .
          ein Punkt

          ack.

          [A-z]+
          mehrere Buchstaben (groß oder klein) oder eines von []^_`

          nee, sondern
          ein Buchstabe (groß oder klein) oder eines von []^_`
          und dann ein + (literal).
          sed != perl

          [0-9]+?
          mehrere oder keine Zahlen (für {0,} gibt es übrigens kurz auch *)

          nee.

          +? ist bei sed einfach +? (beides literal).

          +? ist in perl heisst "match 1 or more times" mit der anmerkung:

          If you want it to match the minimum number of times possible, follow the quantifier with a "?". Note that the meanings don't change, just the "greediness"
            (quelle: perldoc perlre)

          Damit ist – wie Johannes schon sagte – [.]1.\ eine URL,

          nee.
          ein danach gueltiger url waere z.b. "].]+0+?.]+". dieser string wuerde ersetzt werden durch "RL" (ohne "U").

          prost
          seth

          1. Hallo seth,

            und dann ein + (literal).
            sed != perl

            Hm, das wusste ich noch nicht.

            Viele Grüße aus Freiburg,
            Marian

            --
            Microsoft broke Volkswagen's world record: Volkswagen made only 22 million bugs!
            <!--[if IE]><meta http-equiv="refresh" content="0; URL=http://www.getfirefox.com"><[endif]-->
  2. gudn tach!

    Kann sed (linux bash) nicht mir normalen Regulären Ausdrücken arbeiten?

    kommt darauf an, was du unter "normal" verstehst.

    sed verwendet BRE (basic regular expressions) und nicht ERE (extended regular expressions).
    via google findest du leicht erklaerungen ueber die unterschiede.

    vim kann uebrigens beides! wollt ich nur mal so erwaehnt haben.

    prost
    seth