문제점 : 문자가있는 변수가 있습니다. 변수에 저장된 동일한 문자열 내에서 다른 문자를 앞에 추가하고 싶습니다.찾기 및 바꾸기 sed가있는 변수의 특정 문자
예. "[blahblahblah는]"---> "\ [blahblahblah \]"
현재 해결 방법 : 현재 내가 두 단계로 원하는 것을 달성, 각 단계는 하나 개의 브라켓
예를 공격.
temp=[blahblahblah]
firstEscaped=$(echo $temp | sed s#'\['#'\\['#g)
fullyEscaped=$(echo $firstEscaped | sed s#'\]'#'\\]'#g)
이 나에게 내가 원하는 결과를 제공하지만 capturing groups를 사용하여 한 줄에서이 작업을 수행 할 수 같은 느낌. 나는 지금 막 운이 없 그리고 나는 밖으로 점화하고있다. 내가 뭘 하려는지 대신에 괄호로 묶어서 텍스트를 추출하기를 원한다는 사실을 모르는 대부분의 예가있다. This이 내 최신 시도입니다. 어떤 아이디어?
당신은 따옴표를 위해'$ temp'을 단어 분할 및 와일드 카드 확장을 방지 할 필요가있다. '[]'는 쉘 와일드 카드이므로 예기치 않게 확장 될 수 있습니다. –
예, 당신 말이 맞아요. 이것은 OP에서 복사되고 이것을 수정할 것입니다. – CWLiu
또한 정규 표현식이 확장 된 형식 (대안을 구분하기 위해'| '사용)으로 만 나타났습니다. 그것은'sed -r' (GNU sed) 또는'sed -E' (BSD sed)를 사용하지 않는 한 일반적으로 작동하지 않을 것입니다. 대괄호 표현식을 사용하는 것이 더 나을 것입니다 (대괄호를 포함하는 대괄호 표현식은 까다 롭습니다). 'sed 's/[] []/\\ &/g''가 작동해야합니다. –