-1
內使用正則表達式中的$ 1 I嘗試做以下的Perl命令替換:一個Makefile
perl -C -p -i -e 's/([\?\.\!])\n/$1 /g' html/數14.html
結果是好的,當我把它的命令行。當我從Makefile中調用它時不起作用。顯然$ 1被解釋爲shell變量。
在Makefile中它看起來像這樣:
數14.html: 數14.adoc 40_2064_Im\ Strand-Appartment.adoc 41_2064_Ein\ Plan.adoc 42_1915_In\ einer\ Suppenküche.adoc
asciidoctor -D html parts/數14.adoc
perl -C -p -i -e 's/([\?\.\!])\n/$1 /g' html/數14.html
我怎麼能有正常的正則表達式的行爲嗎?
請告訴你如何在你的bash腳本中調用它。如果它是單引號的,它將不會是一個shell變量,如上例所示;但如果你在它周圍放置一些不同的引號,它會。例如''foo = $(perl -C -p -i -e's /([\?\。\!])\ n/$ 1/g'html /數字14.html)'由'$ ()',它會擴展'$ 1',並且你需要將'$ 1'轉換爲'\ $ 1'。 – Amadan
閱讀此主題:[http://stackoverflow.com/questions/31557677/how-to-pass-a-regular-expression-as-a-parameter-to-a-perl-one-liner-in-a- bash-sc/31563152#31563152] – Poyke
是的,對不起。這不是一個bash腳本,它是一個Makefile。 : - | – Michael