다음은 샘플 파일 내용입니다.
고양이샘플.txt
-server -XX:+UseParallelGC -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+AggressiveHeap -XX:+PrintHeapAtGC -Djava.util.logging.FileHandler.limit=12908998 -XX:ParallelGCThreads=4 -Xms1536m -Xmx1536m -Xmn512m -Xss4m -XX:LargePageSizeInBytes=4m -XX:-BindGCTaskThreadsToCPUs -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxTenuringThreshold=3 -XX:SurvivorRatio=20 -Dweblogic.SocketReaders=10
별도의 매핑 파일에서 문자열 목록을 얻었는데 그 중 하나는 문자열입니다 -Djava.util.logging.FileHandler.limit
. 문자열이 발견되면 해당 값과 함께 제거해야 합니다.
따라서 전체 항목(및 해당 값)을 삭제하고 싶습니다.-Djava.util.logging.FileHandler.limit=12908998
-Djava.util.logging.FileHandler.limit
다음과 같이 null로 대체하여 삭제할 수 있습니다 -Djava.util.logging.FileHandler.limit
.
sed -e s/-Djava.util.logging.FileHandler.limit//g -i sample.txt
정규식을 \S*\s
통해 전체 문자열을 공백으로 구분할 수 있을 때 다음을 시도했지만 실패했습니다.
sed -e s/-Djava.util.logging.FileHandler.limit\S*\s//g -i sample.txt
하지만 그 값을 제거하는 방법을 잘 모르겠습니다.-Djava.util.logging.FileHandler.limit=12908998
원하는 출력:
고양이샘플.txt
-server -XX:+UseParallelGC -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+AggressiveHeap -XX:+PrintHeapAtGC -XX:ParallelGCThreads=4 -Xms1536m -Xmx1536m -Xmn512m -Xss4m -XX:LargePageSizeInBytes=4m -XX:-BindGCTaskThreadsToCPUs -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxTenuringThreshold=3 -XX:SurvivorRatio=20 -Dweblogic.SocketReaders=10
답변1
명령 sed
이 제대로 실행되는데 따옴표가 누락되었습니다.
sed -e 's/-Djava.util.logging.FileHandler.limit=\S*\s//g'