python
с помощью команды ps
, pgrep
. Я нашел похожий пост и ссылку :https://stackoverflow.com/questions/8994593/how-to-reroute-stdout-stderr-back-to-dev-tty
Предположительно, вы хотите экранировать только "
, если ему не предшествует \
.
echo ' bad \" string"' | sed -E 's/([^\]|^)"/\1\\"/g'
Это будет соответствовать "
, но только если ему предшествует [^\]
, который является «любым символом, кроме \
» (или началом строки^
). Однако, поскольку этот новый символ будет заменен сам, нам нужно захватить его в группе захвата ()
, а затем снова заменить его совпадением \1
. В этом примере я использовал расширенные регулярные выражения с -E
для простоты.
$ echo ' bad \" string"' | perl -pe 's/(?<!\\)"/\\\"/g'
bad \" string\"
$ echo ' bad \" string" """""""""' | perl -pe 's/(?<!\\)"/\\\"/g'
bad \" string\" \"\"\"\"\"\"\"\"\"
$ echo ' bad \" string" """"""""" \"' | perl -pe 's/(?<!\\)"/\\\"/g'
bad \" string\" \"\"\"\"\"\"\"\"\" \"
Используя отрицательный ретроспективный просмотр, вы можете добиться этого.https://www.regular-expressions.info/lookaround.html