为所有 类 添加接口
adding an interface to all classes
我有大约 300 个 类,他们现在需要实施 Serializable
。我在想我可以使用 find
和 sed
来做到这一点。
通过查找条件有效
^public class.*{$
在其他作品中找到以 Public Class
开头的行,其中包含一些文本并以 {
结尾
现在我要替换它,所以最后实际上是
implemenets MyInterface {
之前是
public class MyClass {
和
public class MyClass2 {
输出为
public class MyClass implements MyInterface {
和
public class MyClass2 implements MyInterface {
我一直在查找反向引用,但它们在我正在测试的 Notepad++ 中似乎很有趣。
任何提示都会很棒。
谢谢
您可以尝试下面的 sed 命令,
$ echo 'public class MyClass {' | sed '/^public class.*{$/s/{$/implements MyInterface {/'
public class MyClass implements MyInterface {
或
$ echo 'public class MyClass {' | sed 's/^\(public class.*\){$/implements MyInterface {/'
public class MyClass implements MyInterface {
使用这个 sed -r
:
sed -r 's/(public +class +\S+ *)\{/ implements MyInterface {/' File.java
如果 java 文件已经有 implements MyInterface
,这将跳过替换。然而,在 Java class 声明中,可能有许多情况下任何基于正则表达式的简单 find/replace 都会失败。
我有大约 300 个 类,他们现在需要实施 Serializable
。我在想我可以使用 find
和 sed
来做到这一点。
通过查找条件有效
^public class.*{$
在其他作品中找到以 Public Class
开头的行,其中包含一些文本并以 {
现在我要替换它,所以最后实际上是
implemenets MyInterface {
之前是
public class MyClass {
和
public class MyClass2 {
输出为
public class MyClass implements MyInterface {
和
public class MyClass2 implements MyInterface {
我一直在查找反向引用,但它们在我正在测试的 Notepad++ 中似乎很有趣。
任何提示都会很棒。
谢谢
您可以尝试下面的 sed 命令,
$ echo 'public class MyClass {' | sed '/^public class.*{$/s/{$/implements MyInterface {/'
public class MyClass implements MyInterface {
或
$ echo 'public class MyClass {' | sed 's/^\(public class.*\){$/implements MyInterface {/'
public class MyClass implements MyInterface {
使用这个 sed -r
:
sed -r 's/(public +class +\S+ *)\{/ implements MyInterface {/' File.java
如果 java 文件已经有 implements MyInterface
,这将跳过替换。然而,在 Java class 声明中,可能有许多情况下任何基于正则表达式的简单 find/replace 都会失败。