파일에서 다음 텍스트를 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
파일을 직접 편집하는 옵션을 추가할 수 있습니다.