
글쎄, 여기와 다른 곳의 수많은 게시물을 살펴봤지만 다음 줄 앞에 있는 #을 찾을 수 없습니다.
[ -n "$ID" -a "$ID" -le 200 ] && return
다음과 같은 여러 가지 솔루션을 시도했습니다.
sed -r "s/[ -n '$ID' -a '$ID' -le 200 ] \&\& return/#[ -n '$ID' -a '$ID' -le 200 ] \&\& return/g"
그리고
sed 's/[ -n "$ID" -a "$ID" -le 200 ]/#&/'
여기와 다른 곳의 게시물을 기반으로 한 몇 가지 다른 아이디어가 있지만 여전히 결과가 없습니다. 나는 단지 이 결과를 얻습니다:
[ -n "$ID" -a "$ID" -le 200 #[ -n '0' -a '0' -le 200 ] ] && return] && return return
그리고
#if [ -n "$BASH_VERSION" -o -n "$KSH_VERSION" -o -n "$ZSH_VERSION" ]; then
# [ -x /usr/bin/id ] || return
# ID=`/usr/bin/id -u`
# [ -n "$ID" -a "$ID" -le 200 ] && return
# # for bash and zsh, only if no alias is already set
# alias vi >/dev/null 2>&1 || alias vi=vim
#fi
아마도 누군가 위에 주어진 특정 줄에 대한 #(태그)를 얻는 방법을 설명해 줄 수 있을 것입니다. 어쩌면 그것은 간단한 것일 수도 있고 최선의 추측은 내가 올바르게 탈출하지 못하고 있다는 것입니다.
위에서 언급했듯이 다양한 게시물을 확인했지만 여전히 달성할 수 없는 것 같습니다...
답변1
대괄호를 이스케이프 처리해야 합니다.
sed 's/^\[ -n "$ID" -a "$ID" -le 200 \] && return$/#&/'