Ein kurzes Beispiel unten zeigt, wie Comby das Matching und Umschreiben im Vergleich zu Regex-Ansätzen wie sed
vereinfacht.
brew install comby
bash <(curl -sL get-comby.netlify.app)
Andere Linux-Distributionen : Die PCRE-Bibliothek ist dynamisch in die Ubuntu-Binärdatei eingebunden. Für andere Distributionen wie Arch Linux ist eine Korrektur erforderlich: sudo ln -s /usr/lib/libpcre.so /usr/lib/libpcre.so.3
. Verwenden Sie unter Fedora sudo ln -s /usr/lib64/libpcre.so /usr/lib64/libpcre.so.3
. Alternativ können Sie auch die Erstellung aus der Quelle in Betracht ziehen.
bash <(curl -sL get.comby.dev)
aus.docker pull comby/comby
Laufen mit Docker auf stdin
:
docker run -a stdin -a stdout -a stderr -i comby/comby ' (:[emoji] hi) ' ' bye :[emoji] ' lisp -stdin <<< ' ( hi) '
Manchmal, ja. Aber oft werden kleine Änderungen und Umgestaltungen durch verschachtelte Ausdrücke, Kommentare oder Zeichenfolgen erschwert. Betrachten Sie den folgenden C-ähnlichen Ausschnitt. Angenommen, die Herausforderung besteht darin, die beiden if
-Bedingungen auf den Wert 1
umzuschreiben. Können Sie einen regulären Ausdruck schreiben, der mit dem Inhalt der beiden if-Bedingungsausdrücke übereinstimmt, und zwar nur mit diesen beiden? Teilen Sie Ihr Muster gerne mit @rvtond auf Twitter.
if ( fgets ( line , 128 , file_pointer ) == Null ) // 1) if (...) returns 0
return 0 ;
...
if ( scanf ( "%d) %d" , & x , & y ) == 2 ) // 2) if (scanf("%d) %d", &x, &y) == 2) returns 0
return 0 ;
Um diese mit comby abzugleichen, müssen Sie lediglich if (:[condition])
schreiben und ein Flag angeben, dass diese Sprache C-ähnlich ist. Der Ersatz ist if (1)
. Sehen Sie sich das Live-Beispiel an.
Installieren Sie opam. TL;DR do sh <(curl -sL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh)
Führen Sie dies aus, wenn Sie OCaml nicht installiert haben (es bootet den OCaml-Compiler):
opam init
opam switch create 4.11.0 4.11.0
Führen Sie eval $(opam env)
aus.
Betriebssystemabhängigkeiten installieren:
Linux: sudo apt-get install autoconf libpcre3-dev pkg-config zlib1g-dev m4 libgmp-dev libev4 libsqlite3-dev
Mac: brew install pkg-config gmp pcre libev
Installieren Sie dann die Bibliotheksabhängigkeiten:
git clone https://github.com/comby-tools/comby
cd comby
opam install . --deps-only
make
make test
comby
auf Ihrem PATH
indem Sie Folgendes ausführen make install