Я использую tinyperl со следующим скриптом:
@lines=<STDIN>;
foreach (@lines) {
s/\\(.)/($1 eq '"' or $1 eq '\\') ? $1 : '\\' . $1/eg;
print;
}
Я бы хотел, чтобы каждая обратная косая черта рассматривалась только со следующим символом, и удаляю обратную косую черту, только если следующий символ представляет собой двойную кавычку или другую обратную косую черту. (Я знаю, что эта цель может быть для вас несостоятельной, но не берите в голову).
Например, я бы хотел перевести abc\ndef\\ghi\"\\\n
на abc\ndef\ghi"\\n
. Но этот скрипт, похоже, переводит его на abcndef\ghi"\n
.
Не могли бы вы помочь?