テキストファイルから各行の最初の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

関連情報