![시간 범위 내의 파일 내용을 삭제하는 방법. (패턴 매칭을 기반으로 하지 않음)](https://linux55.com/image/132711/%EC%8B%9C%EA%B0%84%20%EB%B2%94%EC%9C%84%20%EB%82%B4%EC%9D%98%20%ED%8C%8C%EC%9D%BC%20%EB%82%B4%EC%9A%A9%EC%9D%84%20%EC%82%AD%EC%A0%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.%20(%ED%8C%A8%ED%84%B4%20%EB%A7%A4%EC%B9%AD%EC%9D%84%20%EA%B8%B0%EB%B0%98%EC%9C%BC%EB%A1%9C%20%ED%95%98%EC%A7%80%20%EC%95%8A%EC%9D%8C).png)
시간 범위를 기준으로 파일 내용을 삭제하려고 합니다. 지금까지 나는 다음과 같은 패턴 매칭을 기반으로 시도했습니다.
sed -i '/2018-03-09T13:53/,/2018-03-09T14:00/!d' LogAgentServer
파일(LogAgentServer)의 내용은 다음과 같습니다.
2018-03-09T13:52:04.429+0000: 64.870: [GC (Allocation Failure) [PSYoungGen: 195634K->4192K(240640K)] 305630K->155712K(940032K), 0.1015550 secs] [Times: user=0.18 sys=0.02, real=0.10 secs]
2018-03-09T13:52:23.085+0000: 83.525: [GC (Allocation Failure) [PSYoungGen: 147552K->1600K(145408K)] 299072K->156324K(844800K), 0.0113755 secs] [Times: user=0.01 sys=0.00, real=0.01 secs]
2018-03-09T13:52:36.438+0000: 96.879: [GC (Allocation Failure) [PSYoungGen: 144960K->1376K(238080K)] 299684K->156488K(937472K), 0.0085403 secs] [Times: user=0.01 sys=0.00, real=0.01 secs]
2018-03-09T13:52:47.174+0000: 107.615: [GC (Allocation Failure) [PSYoungGen: 132448K->1344K(132608K)] 287560K->156544K(832000K), 0.0067113 secs] [Times: user=0.02 sys=0.00, real=0.00 secs]
2018-03-09T13:52:58.583+0000: 119.023: [GC (Allocation Failure) [PSYoungGen: 132416K->1248K(240128K)] 287616K->156552K(939520K), 0.0072957 secs] [Times: user=0.01 sys=0.00, real=0.01 secs]
2018-03-09T13:53:13.075+0000: 133.516: [GC (Allocation Failure) [PSYoungGen: 131808K->1248K(239616K)] 287112K->156624K(939008K), 0.0142212 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
2018-03-09T13:53:30.405+0000: 150.845: [GC (Allocation Failure) [PSYoungGen: 131808K->1792K(243712K)] 287184K->157248K(943104K), 0.0092942 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
2018-03-09T13:53:43.380+0000: 163.820: [GC (Allocation Failure) [PSYoungGen: 137984K->4320K(241664K)] 293440K->160512K(941056K), 0.0141034 secs] [Times: user=0.02 sys=0.00, real=0.02 secs]
2018-03-09T13:53:57.422+0000: 177.863: [GC (Allocation Failure) [PSYoungGen: 140512K->4512K(250880K)] 296704K->163920K(950272K), 0.0190071 secs] [Times: user=0.02 sys=0.00, real=0.02 secs]
2018-03-09T13:55:07.187+0000: 247.627: [GC (Allocation Failure) [PSYoungGen: 153504K->3552K(247296K)] 312912K->166176K(946688K), 0.0113494 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
2018-03-09T13:55:49.734+0000: 290.174: [GC (Allocation Failure) [PSYoungGen: 152544K->4256K(259072K)] 315168K->169024K(958464K), 0.0137216 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
2018-03-09T13:56:24.438+0000: 324.878: [GC (Allocation Failure) [PSYoungGen: 169120K->4896K(254976K)] 333888K->172440K(954368K), 0.0231447 secs] [Times: user=0.02 sys=0.00, real=0.02 secs]
2018-03-09T13:57:17.868+0000: 378.308: [GC (Allocation Failure) [PSYoungGen: 169760K->4880K(267264K)] 337304K->175953K(966656K), 0.0197401 secs] [Times: user=0.03 sys=0.00, real=0.02 secs]
2018-03-09T13:58:38.692+0000: 459.133: [GC (Allocation Failure) [PSYoungGen: 186128K->5216K(263168K)] 357201K->179796K(962560K), 0.0123329 secs] [Times: user=0.02 sys=0.00, real=0.02 secs]
2018-03-09T13:59:51.920+0000: 532.361: [GC (Allocation Failure) [PSYoungGen: 186464K->5312K(275968K)] 361044K->184116K(975360K), 0.0134409 secs] [Times: user=0.03 sys=0.01, real=0.02 secs]
2018-03-09T14:01:03.648+0000: 604.088: [GC (Allocation Failure) [PSYoungGen: 204352K->4832K(284160K)] 387421K->192292K(983552K), 0.0129953 secs] [Times: user=0.02 sys=0.01, real=0.01 secs]
2018-03-09T14:01:30.629+0000: 631.069: [GC (Allocation Failure) [PSYoungGen: 219872K->5088K(280064K)] 407332K->196181K(979456K), 0.0104791 secs] [Times: user=0.03 sys=0.00, real=0.01 secs]
하지만 이 명령의 문제점은 위의 시간 범위에 대한 항목이 없으면 작동하지 않는다는 것입니다. 따라서 시간 범위 비교를 사용하여 이를 달성하려면 어떻게 해야 합니까?
이와 같이:
sed -i '/2018-03-09T13:54/,/2018-03-09T14:00/!d' LogAgentServer
다음 결과가 제공되어야 합니다.
2018-03-09T13:55:07.187+0000: 247.627: [GC (Allocation Failure) [PSYoungGen: 153504K->3552K(247296K)] 312912K->166176K(946688K), 0.0113494 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
2018-03-09T13:55:49.734+0000: 290.174: [GC (Allocation Failure) [PSYoungGen: 152544K->4256K(259072K)] 315168K->169024K(958464K), 0.0137216 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
2018-03-09T13:56:24.438+0000: 324.878: [GC (Allocation Failure) [PSYoungGen: 169120K->4896K(254976K)] 333888K->172440K(954368K), 0.0231447 secs] [Times: user=0.02 sys=0.00, real=0.02 secs]
2018-03-09T13:57:17.868+0000: 378.308: [GC (Allocation Failure) [PSYoungGen: 169760K->4880K(267264K)] 337304K->175953K(966656K), 0.0197401 secs] [Times: user=0.03 sys=0.00, real=0.02 secs]
2018-03-09T13:58:38.692+0000: 459.133: [GC (Allocation Failure) [PSYoungGen: 186128K->5216K(263168K)] 357201K->179796K(962560K), 0.0123329 secs] [Times: user=0.02 sys=0.00, real=0.02 secs]
2018-03-09T13:59:51.920+0000: 532.361: [GC (Allocation Failure) [PSYoungGen: 186464K->5312K(275968K)] 361044K->184116K(975360K), 0.0134409 secs] [Times: user=0.03 sys=0.01, real=0.02 secs]
답변1
이 시도.
sed -e '/2018-03-09T13:5[4-9]/!d' LogAgentServer