코드베이스에서 문자열의 발생을 검색 한 다음 형식이 지정된 출력을 파일 이름, 줄 번호 및 코드 lide로 가져옵니다. 출력의 첫 번째 줄에서 원하는대로 얻었지만 다음 줄은 원하는 형식을 잃습니다.
$ find src/ -name "*.js" | xargs grep --null -E -n 'filter\(|map\(' | xargs -0 printf "%-100s%-5s%-100s" > test.txt
결과는 다음과 같습니다. (전체 줄을 보려면 오른쪽으로 스크롤하십시오)
src/components/AppRouterSwitch.js 15: return _Routes.map((route, index) => {
src/components/forms/UserEditForm/UserEditForm.js36: const options = UserTypes.map((type, index) => <option key={index} value={type.type}>{type.name}</option>);
src/components/pages/AdminPage/SolutionManagementEditPage/SolutionManagementEditPage.js119: templates:state.templates.filter(item=>item.SOLUTIONID ==id)
src/components/pages/AdminPage/SolutionManagementEditPage/SolutionManagementEditPage.js120: .map(item=>{return{
첫 번째 줄은 내가 원하는 것처럼 보입니다. 다음은 원하는 형식을 잃습니다. printf 형식 문자열을 끝내면 /n
속임수가 없습니다.
@malyy 나는 약간의 변형으로 시도했지만 성공하지 못했습니다. -l 옵션이 어떻게 도움이되는지 모르겠습니다. -l, --files-with-matches 정상 출력을 억제합니다. 대신 출력이 정상적으로 인쇄 될 각 입력 파일의 이름을 인쇄하십시오. 첫 번째 경기에서 스캔이 중지됩니다.
—
Max
내 대답을 확인하고 당신이 정말로 콜론을 원하는 경우 : 라인 번호 뒤에 (명확히하십시오
—
qubert
-l
(소문자 L)을 사용하십시오