Chciałem zrobić grep dla słów kluczowych z podwójnymi cudzysłowami. Oto prosty przykład:
echo "member":"time" | grep -e "member\""
To nie pasuje. Jak mogę to naprawić?
Problem polega na tym, że nie wykonujesz poprawnej ucieczki z ciągu wejściowego, spróbuj:
echo "\"member\":\"time\"" | grep -e "member\""
Alternatywnie możesz użyć cudzysłowów bez zmiany znaczenia w apostrofach:
echo '"member":"time"' | grep -e 'member"'
Jest to kwestia preferencji, którą uważasz za jaśniejszą, chociaż drugie podejście zapobiega zagnieżdżaniu polecenia w innym zestawie pojedynczych cudzysłowów (np ssh 'cmd'
.).
echo '"member":"time"' |grep -e "member"
nie testowałemecho '"member":"time"' |grep -e 'member"'
. Oba podejścia są prawidłowe, ale wolę jawną ucieczkę, ponieważ zamiar jest bardziej jasny.