sed + 마크 라인(3월 단어인 경우)

sed + 마크 라인(3월 단어인 경우)

sed 또는 perl lineliner와 일치하는 행을 "#"으로 표시하고 싶습니다.

예를 들어

다음을 포함하는 파일의 모든 행을 표시하고 싶습니다.날짜 패턴단어

log4j.appender.DRFA.DatePattern=.yyyy-MM-dd

예상 출력

#log4j.appender.DRFA.DatePattern

참고 - 줄이 이미 표시되어 있으면 줄 앞에 다른 "#"이 추가되지 않습니다.

답변1

#해당 줄 앞에 두고 =그 뒤의 내용을 삭제하세요.

sed 's/^\([^#].*DatePattern\)=.*/#\1/' file

또는 삭제하지 않고 다음을 수행합니다 =.

sed 's/^[^#].*DatePattern/#&/' file

답변2

후행 날짜 패턴을 제거하지 않으려면(사양이 너무 명확하지 않음) 다음을 시도하십시오.

sed '/^[^#].*DatePattern/ s/^/#/' file

관련 정보