여러 공백을 포함하는 Grep 단어

여러 공백을 포함하는 Grep 단어

파일에서 다음 텍스트를 grep하고 sed 명령을 사용하여 주석 처리를 해제하려고 합니다. 도와주세요

#auth           required        pam_wheel.so use_uid

#sed grep을 사용하고 똑같은 줄을 삭제 해야 합니다 .

답변1

비슷한 작업을 수행하기 위해 patch 명령을 사용했습니다.

파일의 백업 복사본을 만들고 일반 편집기를 사용하여 편집한 다음 이를 사용하여 diff -u file.bak file > file.patch패치를 생성합니다.

patch -p0 file.patch그러면 다음에 패치를 적용할 수 있습니다( -p0전체 경로 이름을 사용하는 경우 변경해야 할 수도 있습니다).

이는 정확한 sed 라인을 생성하는 것보다 쉽고, 파일이 일치하지 않으면 파일이 손상되기보다는 패치가 실패하므로 더 안전합니다. 이는 여러 줄 변경에도 적용됩니다.

답변2

GNU sed 사용:

sed -E 's/^#(auth[[:space:]]+required[[:space:]]+pam_wheel\.so use_uid[[:space:]]*)$/\1/' file

출력이 올바르면 -i파일을 직접 편집하는 옵션을 추가할 수 있습니다.

관련 정보