1 public class HelloWorld {
2 public static void main(String args[]) {
3 System.out.println("Hello World!")
4 }
sed -n -e '/public class/p ' -e '/{/= ' hello.java (p打印对应行的信息,=显示对应行的行号)
执行结果是:
public class HelloWorld {
1
2
只要取得第一个{号的行数,就可以在其后插入内容了。
执行:
sed -n -e '/public class/p ' -e '/{/= ' hello.java | sed -n '2p'
即可获取第一个{行号(假设前面没有包含public及其{的注释)
如果
**public class
** {
**** {
public class HelloWorld {
public static void main(String args[]) {
System.out.println("Hello World!")
}
执行
sed -n -e '/public class/p ' -e '/public class/= ' -e '/{/= ' hello.java | sed -n '2p'
则结果是
**public class
1
2
3
public class HelloWorld {
4
4
5
所以,若想获得public或第一个{,应该是这样子:对打印出来的信息做处理,以public class开头的文本的后面的两个数值,如果相等(4,4),则对应的数值为第一个{行号;如果不相等,则第二个数值为第一个{行号。