숫자 조합을 포함하는 IP 옥텟과 일치하고 줄을 삭제할 수 있는 솔루션(가급적이면 sed)이 필요합니다. 예를 들어:
내 파일:
192.168.100.12
192.168.200.12
10.10.20.10
10.10.30.20
10.10.20.x 서브넷에서 발견된 IP가 포함된 행을 제거하고 삭제해야 합니다. 따라서 파일에 10.10.20.10, 20.11, 20.12 등이 포함되어 있으면 모두 삭제됩니다. 인라인 교체도 필요합니다.
내가 시도한 것:
sed -i '/10\.10\.20\.\([0-9]\{1,3\}\)/d' file
이:
sed -i '/10.\.10\.20\.*\([0-9]\{1,3\}\)*/d' file
그러나 둘 다 작동하지 않습니다. 명령은 오류 없이 완료되지만 해당 행은 여전히 파일에 남아 있습니다. 나는 또한 awk와 같은 다른 솔루션에도 열려 있습니다.
답변1
GNU sed 사용:
sed -i '/10\.10\.20\.[[:digit:]]\{,3\}/d' file
BSD sed를 사용하려면 sed -i ''
.