sed,awk 명령 을 사용 하여.java 또는.yaml 파일 생 성 에 필요 한 문장

0.머리말 은 데이터베이스 에 있 는 표 문 구 를 따라 데이터 시트 에 대한 조작 자바 문 구 를 하나씩 쓸 때 귀 찮 고 오류 가 발생 하기 쉬 우 며 왜 새로운 방법 으로 이러한 기능 을 실현 하지 않 습 니까?그래서 셸 구문 으로 이 임 무 를 완성 할 생각 이 들 었 습 니 다.효 과 는 아래 부분 에 있 습 니 다.이번 의 실현 은 단지 하나의 문장 을 사용 하여 이러한 기능 을 실현 하 는 것 이 고,다음 단 계 는 하나의 셸 스 크 립 트 로 이러한 기능 을 자동화 하 는 것 이다./TODO
1.sql 탭 문 에 따라*.자바 파일 을 만 드 는 데 필요 한 문 구 를 만 듭 니 다.
1.sql 구문 test.sql
CREATE TABLE IF NOT EXISTS `user_details` (
  `user_id` int(11) NOT NULL AUTO_INCREMENT,
  `user_name` varchar(255) DEFAULT NULL,
  `first_name_str` varchar(50) DEFAULT NULL,
  `last_name_str` varchar(50) DEFAULT NULL,
  `gender` varchar(10) DEFAULT NULL,
  `password` varchar(50) DEFAULT NULL,
  `status` tinyint(10) DEFAULT NULL,
  PRIMARY KEY (`user_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=10001 ;

2.awk 명령 을 통 해 sql 구문 에서 형식 이 있 는 필드 를 추출 합 니 다.awk -F'[` (]' '{print $6" "$4}' test.sql > testWithType.sql
int user_id
varchar user_name
varchar first_name_str
varchar last_name_str
varchar gender
varchar password
tinyint status

3.awk 문 구 를 통 해 변 수 를 구분 하고 그 뒤의 단어 이니셜 을 대문자 로 awk-F'' '{printf $1;for(i=2;i<=NF;i++)printf toupper(substr($i,0,1))substr($i,2);printf ""}' testWithType.sql > testWithType1.java
int userId
varchar userName
varchar firstNameStr
varchar lastNameStr
varchar gender
varchar password
tinyint status

4.sed 명령 을 통 해 상기 유형 과 변 수 를 자바 의 문장 으로 바 꿉 니 다.sed 's/varchar/String/g' testWithType1.java | sed 's/tinyint/int/g' | awk '{printf "private " $1 " " $2 ";"}'
private int userId;
private String userName;
private String firstNameStr;
private String lastNameStr;
private String gender;
private String password;
private int status;

2.sql 구문 에서 추출 한 필드 와 변 환 된 자바 필드 에 따라 Yml 파일 에 필요 한 문 구 를 생 성 합 니 다.
1.sql 구문 test.sql
CREATE TABLE IF NOT EXISTS `user_details` (
  `user_id` int(11) NOT NULL AUTO_INCREMENT,
  `user_name` varchar(255) DEFAULT NULL,
  `first_name_str` varchar(50) DEFAULT NULL,
  `last_name_str` varchar(50) DEFAULT NULL,
  `gender` varchar(10) DEFAULT NULL,
  `password` varchar(50) DEFAULT NULL,
  `status` tinyint(10) DEFAULT NULL,
  PRIMARY KEY (`user_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=10001 ;

 2.대상 필드 awk-F'['(')'{print$4'}'test.sql>part 1 추출
user_id 
user_name 
first_name_str 
last_name_str 
gender 
password 
status 

3.낙타 봉 의 이름 을 바 꾸 는 방법 에 연결 할 가짜 awk-F'[(]'{print$4}'test.sql|
awk -F'_'  '{printf " " $1;for(i=2;i<=NF;i++)printf toupper(substr($i,0,1))substr($i,2);printf ""}' > part2
 userId
 userName
 firstNameStr
 lastNameStr
 gender
 password
 status

4.연결 구성.yaml 파일 의 두 부분 paste-d':'part 1 part 2
user_id : userId
user_name : userName
first_name_str : firstNameStr
last_name_str : lastNameStr
gender : gender
password : password
status : status

좋은 웹페이지 즐겨찾기