假设我有一个文件, 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
文件。
如果您确信前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
将该文件保存为原始名称。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句