쉘(bash) 스크립트에 다음과 같은 명령문이 있다고 가정해 보겠습니다.
var=`cat file.txt`
echo "Date is: `date`"
$()
백틱 표기법을 다음과 같은 표기법 으로 변환하고 싶습니다 .
var=$(cat file.txt)
echo "Date is: $(date)"
전체 파일에 대한 검색/바꾸기를 통해 Vim에서 이 작업을 어떻게 수행합니까?
답변1
당신은 시도 할 수 있습니다
:% s/`\([^`]*\)`/$(\1)/gc
g
사용자에게 교체할 때마다 메시지가 표시 c
되도록 전역(행의 모든 항목에 대해)으로 만듭니다 .vim
그러나 중첩된 백틱 및 여러 줄 코드에서는 작동하지 않습니다. 백틱 쌍에만 적용됩니다.
종료하고 이 목적 vim
으로 사용할 수도 있습니다 .sed
sed -n -i.backup 'N; ${s/`\([^`]*\)`/$(\1)/g; p; q}; b' filename
여러 줄 역행렬과 함께 작동하지만 중첩은 없습니다.