텍스트 파일에서 각 줄의 처음 10자를 제거합니다.

텍스트 파일에서 각 줄의 처음 10자를 제거합니다.

파일이 있다고 가정해 보겠습니다.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 ''-ised-imv

답변2

이 시도:

sed -i -r 's/.{10}//' *.java

관련 정보