sed + 일치하는 두 패턴 사이의 모든 줄을 삭제한 다음 x=yes로 단어를 추가합니다.

sed + 일치하는 두 패턴 사이의 모든 줄을 삭제한 다음 x=yes로 단어를 추가합니다.

다음은 예제 스크립트입니다.

일치하는 두 패턴 사이에서 성공적으로 삭제한 경우(첫 번째 패턴은 cat <<EOF | more이고 두 번째 패턴은 read x)

스크립트

#!/bin/sh

cat <<EOF | more

.
.
.
.


EOF

echo -n "Do you agree with the License? [yes/no] "
read x

.
.
.

내 sed 명령

sed -i '/^cat <<EOF | more/,/^\read x/d' test.sh

이제 위에서 언급한 대로 삭제된 모든 행을 삽입하기 위해 x=yes 매개변수를 추가하는 sed 기능을 추가하고 싶습니다.

sed 명령에 이 기능을 추가할 수 있나요?

예상 결과의 예

#!/bin/sh

x=yes

답변1

apend 명령을 사용하여 텍스트를 추가 할 수 있습니다 .

sed -e '/^cat <<EOF | more/ax=yes' -e '//,/^\read x/d' 

적어도 GNU에서는 sed줄 자체가 삭제되어도 실행됩니다. 한 번만 추가하고 싶으므로 첫 번째 주소 a와 범위 만 사용하세요 d. 빈 표현식은 이전 표현식을 반복합니다.

관련 정보