www.website.com
포함 행을 포함 행에 복사하고 싶습니다 thetext
.
예를 들어 다음 입력을 변환하고 싶습니다.
Lorem ipsum dolor sit amet, elit.
Cras eu www.website.com velit vitae
Pellentesque interdum
thetext
Sed ullamcorper tellus
다음 출력을 입력하십시오.
Lorem ipsum dolor sit amet, elit.
Cras eu www.website.com velit vitae
Pellentesque interdum
thetextCras eu www.website.com velit vitae
Sed ullamcorper tellus
복사 붙여넣기 사용법을 모르겠습니다 sed
. 조금 까다로운 것 같습니다.
답변1
ed
( Bash
여기서는 셸에서 사용됨)을 사용하여 다음과 같이 선을 이동하고 연결할 수도 있습니다.
str='
Lorem ipsum dolor sit amet, elit.
Cras eu www.website.com velit vitae
Pellentesque interdum
thetext
Sed ullamcorper tellus
'
# cf. http://wiki.bash-hackers.org/howto/edit-ed
cat <<-'EOF' | sed -e 's/^ *//' -e 's/ *$//' | ed -s <(echo "$str")
H
/www\.website\.com/m/thetext/
-1,.j
,p
q
EOF
파일을 제자리에서 편집하려는 경우 이 ed
도구를 선택할 수 있습니다.
답변2
이것이 정확히 원하는 것인지 확실하지 않지만 다음과 같습니다.
- 관심 있는 행(포함된 행)이 보이면
www.website.com
이를 예약된 공간에 복사하세요. - 바꾸려는 텍스트( )가 보이면
thetext
공간을 절약하는 내용을 추가한 다음 - 결과를 정리합니다.
sed -e '/www\.website\.com/h' \
-e '/thetext/{' -e 'G' -e 's/\n//' -e '}'
나는 Normal 이외의 다른 작업을 위해 awk를 사용하는 것을 권장합니다 s///
.
awk '
/www\.website\.com/ { line=$0 }
/thetext/ { $0 = $0 line }
1'