파일이 있습니다 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