sed 명령은 줄을 대체합니다

sed 명령은 줄을 대체합니다

파일이 있습니다 sample.txt. 이 파일의 내용은

..some content...
  # bind-address = ":7086"
  # bind-address = ":8086"

포트 7086에 대한 줄의 주석 처리를 제거하고 포트도 8888로 교체하여 최종 수정된 파일이 다음과 같이 보이도록 하고 싶습니다.

..some content...
   bind-address = ":8088"
  # bind-address = ":8086"

나는 명령으로 그것을하고 싶다 sed. 그렇다면 정확한 명령은 무엇입니까?

답변1

주석에서 확인했듯이 문자열에는 항상 가 포함되어 있으므로 # bind-address = ":7086"이를 바꾸려면 sed검색을 사용하고 문자열을 하드코딩하여 옵션을 바꾸십시오.

sed -i 's/# bind-address = ":7086"/bind-address = ":8088"/' file2

답변2

이 시도,

sed -i 's/#\(.*\)7086/\18088/g' file_content

여기 전후의 #모든 항목 이 그룹화되고 전체 라인이 (그룹 1 또는 영역 1) 및 원하는 포트 8088 7086로 대체됩니다.\1

답변3

sed '1,/#/ s/#/ /' filename > temp1

첫 번째 패턴 발생을 공백으로 바꿉니다.

그런 다음 포트 번호를 변경하십시오.

sed 's/7086/8086/' temp1 > filename

관련 정보