http://qs1969.pair.com?node_id=11138569


in reply to Re: replacing close-single-quote with apostrophe
in thread replacing close-single-quote with apostrophe

For completeness, you can also use the literal character in a one-liner as well:

$ echo It’s easy | perl -Cio -pe "s/’/'/g;"
It's easy

Note that the script, such as it is, is enclosed in double-quotes here only to avoid the problem of escaping the single quote within.


🦛

Replies are listed 'Best First'.
Re^3: replacing close-single-quote with apostrophe
by ikegami (Patriarch) on Nov 08, 2021 at 16:52 UTC

    That command is wrong. You want

    perl -CSD -Mutf8 -pe"s/’/'/g;"

    -Cio has no effect in that example, which you can see by removing it.

    $ echo It’s easy | perl -pe"s/’/'/g;" It's easy

    -Ci only has an effect if reading from a file

    $ perl -Cio -pe"s/’/'/g;" <( echo "It’s easy" ) Wide character in print at -e line 1, <> line 1. It’s easy

    This is what you want if reading from a file:

    $ perl -CiO -Mutf8 -pe"s/’/'/g;" <( echo "It’s easy" ) It's easy

    This is what you want if reading from STDIN:

    $ echo "It’s easy" | perl -CIO -Mutf8 -pe"s/’/'/g;" It's easy

    Combining both, you can use

    perl -CiIO -Mutf8 -pe"s/’/'/g;"

    Better:

    perl -CSD -Mutf8 -pe"s/’/'/g;"