Perl адзін лайнер, каб знайсці і замяніць ў файле з зменнай

I'm trying to find

  • some_link
  • and replace it with nothing. To do this, I'm running the command below but it's recognizing $ as part of a regex.

    perl -p -i -e 's/

  • \n//g' file.html

    I've tried the following things,
    ${SOMEVAR}
    \$SOMEVAR
    FIND="

  • "; perl -p -i -e 's/$FIND//g' file.html

    Любыя ідэі? Дзякуючы.

  • 9
    @Chriszuma вы спрабавалі фактычнае -pie камбінацыю?
    дададзена аўтар tadmc, крыніца
    Дзякуй за мяне паглядзець, што -i сцяг робіць. Гэта выдатна. Пра рада: вы можаце змясціць усе сцягі разам, як гэта: -pie
    дададзена аўтар Chriszuma, крыніца
    Акрамя таго, прэстыжнасць на цвёрдым першым пасце. Праблема апісана коратка, нароўні са спробамі рашэння. Добра зроблена.
    дададзена аўтар Chriszuma, крыніца
    Данг, няма, я не меў. Здаецца, вы не можаце камбінаваць гэтыя тры, але вы можаце зрабіць -i -pe .
    дададзена аўтар Chriszuma, крыніца

    2 адказы

    Bash толькі робіць падстаноўку зменнай у падвойных двукоссях.

    Гэта павінна працаваць:

    perl -p -i -e "s/
  • \n//g" file.html
  • EDIT Actually, that might act weird with the \n in there. Another approach is to take advantage of Bash's string concatenation. Гэта павінна працаваць:

    perl -p -i -e 's/
  • \n//g' file.html
  • EDIT 2: I just took a closer look at what you're trying to do, and it's kind of dangerous. You're using the greedy form of .*, which could match a lot more text than you want. Use .*? instead. I updated the above regexes.

    11
    дададзена
    Парадак перамыкачоў не мае значэння для майго выпадку (падыходзячы з СЕПГ -ri для падтрымкі рэгулярных выразаў lookaround), але я павінен быў аддзяліць кароткую форму перамыкачоў, калі я не атрымаў бы памылку < код> не ўдаецца адкрыць скрыпт Perl ...: няма такога файла ці каталога мой -e параметр.
    дададзена аўтар Pysis, крыніца

    Калі «SOMEVAR» сапраўды з'яўляецца знешняй зменнай, вы можаце экспартаваць яго ў навакольнае асяроддзе і спасылацца на яго наступным чынам:

    SOMEVAR=whatever perl -p -i -e 's/
  • \n//g' file.html