홈>
PHP 소스 만grep하는 깔끔한 grep one-liner가 있습니까 (
<?
사이의 코드)
그리고
?>
) PHP 파일에서? 지금까지 나는 시도했다 :
grep -oiE "<\?php[[:print:]]*\?>" name_of_php_file
그러나 다음과 같은 혼동 된 항목을 반환하는 것 같습니다 :
<?php print $row[0];?>"><img src="gallerybig/<?php echo $row[1];?>
혼란 된 항목없이만PHP 소스를 반환하는 단일 라이너가 필요합니다. sed와 awk는 괜찮습니다.
<시간>편집 :여러 줄에 걸쳐 있어도 예상되는 출력은 PHP 소스 코드입니다.
"><img src="gallerybig/
사이에 HTML이 포함되어 있으므로 샘플 출력이 잘못되었습니다.
편집 2 :@SigmaPiEpsilon이 제공 한 답변은 효과가 있지만 grep은 여러 줄에 걸친 코드를 인쇄하지 않습니다. 예를 들어 다음 코드 스 니펫은 출력에 표시되지 않습니다.
<?php
$str="select c_id,c_description,cate_name,date from book_table ;";
$res=mysql_query($str); ?>
-
답변 # 1
-
답변 # 2
GNU awk로 지금까지 설명한 것을 수행 할 수 있습니다 :
$ gawk -v RS='?>' 'RT{sub(/.*<\?/,"<?"); print $0 RT}' file <?php $str="select c_id,c_description,cate_name,date from book_table ;"; $res=mysql_query($str); ?>
그러나
?>
를 설명하지 않기 때문에 분명히 강력하지 않습니다. 주석 내부 또는 문자열 내부 또는 HTML 내부 또는 ... 또는 원하는대로 수행할지 여부는 실제 입력에 존재하는 경우 아직 표시하지 않은 사소한 경우에 따라 다릅니다.
관련 자료
- c# - c # 목록에서 배열로 코드 한 줄 작성
- excel - 로컬 HTML 파일에서 데이터를 가져 오는 VBA 코드
- class - 이 코드를 한 번만 코딩하고 C #을 복제하는 방법
- javascript - AdonisJS에서 PHP에서이 코드를 번역하는 방법은 무엇입니까?
- c# - 코드의 버튼을 탭 페이지에 추가하는 방법은 무엇입니까?
- import - 메인 빈의 코드를 다른 빈에 재사용하는 방법은 무엇입니까?
- java - 이 코드가 android studio에서 반복되기를 원합니다
- javascript - for 루프 만 실행하는 JS 코드에 오류가있는 이유는 무엇입니까?
- bash - 파일에서 인쇄하는 코드가 너무 느린 이유는 무엇입니까?
- typescript - vs 코드 - 루트 경로에서"모듈을 찾을 수 없습니다"
- linux - Bash의 JSON 파일에서 일부 키만 추출
- bash - 파일에서 일부 데이터 만 추출
- time - 왜 코드가 나에게 '홀수'만 주나요?자바 스크립트?
- bash - launchctl에서 파일을 소싱하는 방법
- regex - C #을 사용하여 파일 이름에서만 날짜를 추출하는 방법
- sql - 여러 행에서 하나의 데이터 만 반환
- excel - 셀 값에서 숫자 만 가져옵니다
- bash - if/while 문에서 종료 코드를 수정하는 방법
- javascript - 서버의 웹 페이지에서 Java 코드 호출
- git - GitHub API에서 15 개의 요소 만 얻는 방법은 무엇입니까?
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- vue.js - axios를 사용하여 서버에 이미지를 업로드하는 방법
- python - 문자열에서 특정 문자 제거
?
를 추가하여 욕심없는 검색을 사용해야합니다[[:print:]]*
후 . 이것은 일반적인 grep에서는 사용할 수 없지만-P
를 지정하여 Perl 구문과 함께 사용할 수 있습니다-E
대신 플래그 .man grep
확인 grep이이를 지원하는지 확인하십시오.여러 줄에 걸쳐 이것을 일치 시키려면 개행 문자를 지정하고
-z
를 사용해야합니다 깃발. 정규식은 약간 까다로워 지지만?
와 욕심없는 일치를 지정하는 대신 보완 일치를[^?]
로 사용할 수 있습니다?
를 제외한 모든 것과 일치 . 아래 참조