변수 문자열 전후에 텍스트를 대체하는 방법은 무엇입니까?


0

고정되지 않은 문자열 전후에 파일의 텍스트를 변경해야합니다.
예를 보여 드리겠습니다.

this-is-cat-really-weird  
this-is-dog-really-weird  

there-is-cat-really-weird  
there-is-dog-really-weird  

that-is-cat-really-weird  
that-is-dog-really-weird  

원하는 출력은 다음과 같으므로 처음 두 줄만 변경하려면 단일 명령을 작성해야합니다.

this-is-cat-really-nice  
this-is-dog-really-nice  

there-is-cat-really-weird  
there-is-dog-really-weird  

that-is-cat-really-weird  
that-is-dog-really-weird 

나는 awk를 사용하여 적절한 해결책을 찾을 수 없었다.
또한 변경하려는 100+ 줄이 있으면 어떻게 작업 지침을 작성할 수 있습니까?이 줄은 파일의 어느 곳에 나있을 수 있습니까?
도움을 주시면 감사하겠습니다.


-업데이트 됨-질문
steeldriver를

답변:


1

라인 범위와 함께 sed를 사용하십시오.

$ sed '1,2s/weird/nice/' input.txt
this-is-cat-really-nice  
this-is-dog-really-nice  

there-is-cat-really-weird  
there-is-dog-really-weird  

that-is-cat-really-weird  
that-is-dog-really-weird  

파일의 아무 곳이나 일치 시키려면 :

$ sed '/this-is-cat-really/{s/weird/nice/;N;s/weird/nice/}' input.txt 
this-is-cat-really-nice  
this-is-dog-really-nice  

there-is-cat-really-weird  
there-is-dog-really-weird  

that-is-cat-really-weird  
that-is-dog-really-weird  

this-is-cat-really-nice  
this-is-dog-really-nice  

답변 주셔서 감사합니다. 질문 끝에 업데이트를 확인하십시오 (이전에 작성하는 것을 잊었습니다).
로드리고 안드레스 나바 라라

1
@RodrigoAndresNavaLara 편집 후에는 두 가지 다른 질문이 있습니다. 답변을 수정했지만 앞으로는 이것이 적절하지 않습니다. 게시물 당 하나의 질문 만 기억하십시오. 그렇지 않으면 게시물이 불분명 해지고 닫힙니다
Sergiy Kolodyazhnyy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.