몇 줄(기본적으로 MySQL 쿼리)이 포함된 파일이 있습니다.
예를 들어:
GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%' IDENTIFIED BY PASSWORD '*A576A2D299CFAF43CE15363F20BDD260FC1E9F77' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'user2'@'%' IDENTIFIED BY PASSWORD '*CE15363F20BA576F43DD260FC1E9F77A2D299CFA';
IDENTIFIED
및로 시작하는 모든 문자를 제거하고 싶습니다.두 번째 작은따옴표 앞에.
예상 출력:
GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'user2'@'%';
AWK 또는 SED 명령이 있습니까?
답변1
요청한 내용(IDENTIFIED로 시작하고 두 번째 작은따옴표 앞의 모든 문자 제거):
$ sed "s/IDENTIFIED[^']*'[^']*//" file
GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%' ' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'user2'@'%' ';
실제로 예상한 결과가 생성됩니다.
$ sed "s/ *IDENTIFIED.*'//" file
GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'user2'@'%';