특수 문자와 함께 SED 명령 사용

특수 문자와 함께 SED 명령 사용

sedthis 명령을 사용하여 줄 시작 부분에서 특수 문자를 검색하고 다른 특수 문자로 바꾼 다음 해당 특수 문자만 줄에 추가할 수 있는 방법이 있습니까 ?

좀 찾아보고, 포럼을 찾아보고, 이해하려고 노력했습니다 sed. 특수 문자에 대해 뭔가 조치를 취해야 할 것 같습니다. seda로 시작하는 줄을 추가 [하고 a를 추가 하는 명령을 사용하고 있지만 ]아무 작업도 수행하지 않습니다. 뭔가 빠진 것 같아요. 또 다른 문제는 다른 sed* that replaces a// [` 에 의존한다는 것입니다 for a.

찾아서 바꾸기:

sed -e 'y#//#[#'

오류가 반환됩니다.

sed: -e expression #1, char 7: strings for `y' command are different lengths

부록:

sed -e "/^'['/s/$/']/g"

파일의 복사본을 만들고 텍스트 편집기를 사용하여 찾기 및 바꾸기를 수행하고 //를 [로 변경했지만 이 명령은 아무것도 반환하지 않으며 끝에 문자를 추가하지 않습니다.

이 명령을 작동시키려면 아직 뭔가가 부족한 것 같고, 이 명령을 하나의 명령으로 결합할 수 있는 방법이 있는지 잘 모르겠습니다.

답변1

내가 아는 한, 당신이 원하는 것은 이 sed 명령이 수행해야 합니다. "y"가 아닌 "s" 명령을 사용합니다.

  • 첫 번째 sed 명령(세미콜론까지)은 //의 모든 인스턴스를 [로 바꿉니다.

  • 두 번째 sed 명령은 "["로 시작하는 줄을 찾고 끝에 "]"를 추가합니다.

     echo -e "hello//goodbye\nhello[goodbye\n//hello_and_goodbye\n[hello_and_goodbye"|\
     sed 's~//~[~g;/^\[/s~$~]~'
    

관련 정보