sed를 사용하여 단일 '을 바꾸는 방법은 무엇입니까?

sed를 사용하여 단일 '을 바꾸는 방법은 무엇입니까?

여러 파일에서 '30을 '30으로 바꿔야 합니다. 다음은 작동하지 않습니다:

grep -Rl "'30"  /myDir | xargs  sed -i "s/'30/`30/g"

어떻게 해결할 수 있나요?

저는 Fedora 26 머신을 사용하고 있습니다.

답변1

백틱 앞에 백슬래시를 추가하면 됩니다.

grep -Rl "'30" /myDir | xargs  sed  "s/'30/\`30/g"

답변2

find /myDir -maxdepth 1 -type f -exec grep -q \'30 {} \; -exec sed -i -e y/\'/\`/ {} +

여기에서는 find디렉터리의 파일을 필터링하고, /myDir문자열을 가져 '30와서 힙에 있는 해당 파일만 sed, which'll do an in-place editing-i`에 전달할 수 있습니다.

관련 정보