셸 은 큰 파일 에서 원 하 는 문자열 조작 방법 을 찾 습 니 다.

4220 단어
어제 단오 에 저녁 에 전 화 를 받 았 습 니 다. 제 친구 의 회사 입 니 다. 데이터 베 이 스 는 두 개의 일 을 한 지 얼마 되 지 않 은 phoper 에 의 해 망 가 졌 습 니 다. 구체 적 으로 한 필드 값 을 전체 시계 에 이름 으로 만 들 었 습 니 다. 물론 이것 은 전체 시계 가 데이터 베 이 스 를 업데이트 하 는 것 을 금지 하 는 것 을 설정 할 수 있 습 니 다. 지금 은 정말 급 합 니 다. 저 를 찾 아 보 여 주세요. 그들 은 매일 3: 00 에 백업 이 있 습 니 다.날짜 별로 백업 하면 증분 되 지 않 습 니 다. 물론 binlog 로그 도 열 렸 습 니 다. 백업 파일 을 봤 는데 요.
[root@AY1406121449173218ccZ ~]# ls -lha /www/datebak/2016-06-09.sql
-rw-r--r-- 1 root root 4.9G Jun  9 03:03 /www/datebak/2016-06-09.sql
[root@AY1406121449173218ccZ ~]#

그들 은 전체 백업 파일 에 5G 가 있 습 니 다. 물론 회복 효과 가 여러 가지 가 있 습 니 다. 제 가 생각해 보 니 그들 이 오늘 하루 종일 등록 한 사용 자 를 빼 내 고 얼마 없 이 10 여 개 만 있 습 니 다. 그리고 이 5 개의 G 데이터 에서 제 가 필요 로 하 는 시 계 를 찾 아 냈 습 니 다.
[root@AY1406121449173218ccZ datebak]# grep  -n  "ROP TABLE IF EXISTS `activity`" 2016-06-09.sql
-bash: activity: command not found
22:DROP TABLE IF EXISTS `activity`;
67:DROP TABLE IF EXISTS `activity_img`;
93:DROP TABLE IF EXISTS `activity_recommended`;
124:DROP TABLE IF EXISTS `atest`;
149:DROP TABLE IF EXISTS `black_user`;
175:DROP TABLE IF EXISTS `category`;
204:DROP TABLE IF EXISTS `class_grade`;
232:DROP TABLE IF EXISTS `collocate_banner`;
262:DROP TABLE IF EXISTS `course`;
330:DROP TABLE IF EXISTS `edu_account_bind`;
366:DROP TABLE IF EXISTS `function`;
392:DROP TABLE IF EXISTS `head_img`;
418:DROP TABLE IF EXISTS `information`;
455:DROP TABLE IF EXISTS `information_img`;
480:DROP TABLE IF EXISTS `installed_app`;

셸 의 grep 명령 을 통 해 우 리 는 우리 가 필요 로 하 는 표 의 줄 수 를 찾 을 수 있 습 니 다.
sed -n '5112,5153p' 2016-06-09.sql > tb_user_info.sql

그리고 sed 명령 을 통 해 우리 가 찾 은 줄 번 호 를 다른 파일 에 기록 하면 기본적으로 해 결 됩 니 다. 그리고 제 가 가 져 온 데 이 터 를 원래 의 데이터 에 가 져 온 다음 에 내 보 낸 하루 의 데 이 터 를 가 져 오 면 문 제 를 해결 합 니 다. 전체 문 제 를 해결 할 때 1 시간 을 넘 지 않 았 습 니 다. 주로 셸 이 자주 사용 하지 않 았 고 자 료 를 찾 았 습 니 다.물론 사고방식 도 가장 중요 하 다. 문 제 를 해결 하 는 데 첫 번 째 는 명확 한 사고방식 이 있어 야 한다. 전체 과정 을 몇 번 잘 넘 겨 야 한다. 그렇지 않 으 면 시험 을 다 거 르 지 못 하면 더 많은 문 제 를 초래 할 수 있다.

좋은 웹페이지 즐겨찾기