删除文本文件中每行的前 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 '',因为-i那里需要一个参数。对于其他版本,sed您根本没有-i,需要将输出保存到不同的文件,然后mv将该文件保存到原始名称。

答案2

尝试这个 :

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

相关内容