파일이 있다고 가정해 보겠습니다.test.java
이렇게 시작됐어요각 라인
/* */ package com.a;
/* */ import java.util.List
/* */ etc
각 줄의 처음 10자를 제거하고 싶습니다그리고 공백으로 교체이므로 명령을 실행한 후 파일은 다음과 같아야 합니다.
package com.a;
import java.util.List
etc
그게 아니야:
package com.a;
import java.util.List
etc
감사해요
다루어야 할 올바른 명령을 찾고 있습니다.모든 .java
파일은 아래의 모든 하위 디렉터리에 있습니다.
답변1
당신이 확신한다면처음 10자- 다음을 사용하세요find
+sed
해결책:
find . -type f -name "*.java" -exec sed -i 's/.\{10\}//' {} \;
find . -type f -name "*.java"
- 재귀적으로 모든*.java
파일 찾기sed -i 's/.\{10\}//'
- 발견된 각 파일에서 각 줄의 처음 10자를 제거합니다(-i
옵션을 통해 파일 수정 가능)제자리에)이 솔루션은 GNU에서 작동합니다
sed
. BSD의 경우 필수 매개변수가 있기 때문에sed
꼭 필요합니다 . 다른 버전의 경우 해당 기능이 전혀 없으므로 출력을 다른 파일에 저장한 다음 해당 파일을 원래 이름으로 저장해야 합니다.-i ''
-i
sed
-i
mv
답변2
이 시도:
sed -i -r 's/.{10}//' *.java