나는 그것에 대해 약간 새로운 것이고 Mac으로 옮긴 이후로 많이 사용하지 않았지만 몇 번의 검색 후에 sed
모든 Ubuntu와 Mac에서 상황이 다른 것 같다는 것을 깨달았습니다. sed
내가 원하는 것은 XML 파일의 첫 번째 부분을 몇 가지 새로운 값으로 바꾸는 것입니다. 지식을 새롭게 한 후 다음을 sed
사용하기로 결정했습니다.
sed -e '1,/<\/value>/ s/.*/\<something\>lorem ipsum\<\/something\>\n\<again\>wednesday\<\/again\>\n/' $theFile
코드를 실행하면 <something>lorem ipsum</something>n<again>wednesday</again>n
첫 번째 줄부터 </value>
끝까지 모든 줄에 출력됩니다.
그래서 제 질문은 모든 줄에서 파일 내용을 반복하지 않고 원하는 새 줄의 파일 내용을 바꾸는 적절한 방법은 무엇입니까?
답변1
이것은sed
철사-편집기는 해결된 각 줄에 스크립트를 적용합니다. 따라서 n
ewline 구분 기호를 사용하여 하나의 문자열로 바꾸고 싶은 줄을 수집해야 합니다.
sed -e '1{:1;N;/<\/value>/b1;s/.*/\<something\>lorem.....\n/}' $theFile
또 다른 방법은 i
블록 앞에 필요한 텍스트를 삽입한 다음 블록을 제거하는 것입니다.
sed -e '1i\\<something\>lorem.....\n' -e '1,/<\/value>/d' $theFile