sed에서 백슬래시를 사용하는 방법은 무엇입니까?

sed에서 백슬래시를 사용하는 방법은 무엇입니까?

sed를 통해 텍스트 파일에 일부 단어를 삽입하려고 합니다.

문제는 일부 단어에 다음과 같은 문자열이 있다는 것입니다.

 -sv /

그래서 아래에서 찾아서 -sv /삽입하고 싶습니다 .-ALLOWTEXT /-sv /

그래서 나는 사용했다

find . -name "main.v" -exec sed -i '/-sv //a -ALLOWTEXT \\n' "{}" \;

아래와 같이 오류가 발생합니다.

sed: -e expression #1, char 7: unknown command: `/'

편집: 오타가 있어서 죄송합니다. -sv /는 -sv \여야 합니다.

아래에서 찾아서 -sv \삽입하고 싶습니다 . 그래서 난 달린다-ALLOWTEXT \-sv \

  find . -name "main.v" -exec  sed -i '/-sv \//a -ALLOWTEXT \//' {} \;

훌륭한 답변을 인용함으로써.

그렇다면 괜찮습니다. ;)

답변1

텍스트가 포함된 특정 파일의 경우:

-sv /

그 아래에 다음 텍스트가 포함된 줄을 삽입합니다.

 -ALLOWTEXT /

GNU를 사용하면 sed:

$ cat input.txt
-sv /
$ sed '/-sv \//a -ALLOWTEXT /' input.txt
-sv /
-ALLOWTEXT /

/s는 특수 문자이므로 찾고 sed있는 텍스트에 s가 나타나면 앞의 s를 사용하여 이스케이프해야 합니다 \.

관련 정보