私はの線に沿って何かをしたいと思っています
awk '/begin-regex/,/end-regex/'
しかし、もう少し進んでいます。{
特にJavaで関数全体を検索したいのですが、中括弧(および)を使用するC /C++やその他の関数で機能しない理由がわかりません}
。
ここにいくつかのサンプルコードがあります(http://introcs.cs.princeton.edu/java/14array/Sample.java.htmlから供給されています)
public class Sample {
public static void main(String[] args) {
int M = Integer.parseInt(args[0]); // choose this many elements
int N = Integer.parseInt(args[1]); // from 0, 1, ..., N-1
// create permutation 0, 1, ..., N-1
int[] perm = new int[N];
for (int i = 0; i < N; i++)
perm[i] = i;
// create random sample in perm[0], perm[1], ..., perm[M-1]
for (int i = 0; i < M; i++) {
// random integer between i and N-1
int r = i + (int) (Math.random() * (N-i));
// swap elements at indices i and r
int t = perm[r];
perm[r] = perm[i];
perm[i] = t;
}
// print results
for (int i = 0; i < M; i++)
System.out.print(perm[i] + " ");
System.out.println();
}
}
main
今、私は関数を引き出したいだけです。
public static void main(String[] args) {
int M = Integer.parseInt(args[0]); // choose this many elements
int N = Integer.parseInt(args[1]); // from 0, 1, ..., N-1
// create permutation 0, 1, ..., N-1
int[] perm = new int[N];
for (int i = 0; i < N; i++)
perm[i] = i;
// create random sample in perm[0], perm[1], ..., perm[M-1]
for (int i = 0; i < M; i++) {
// random integer between i and N-1
int r = i + (int) (Math.random() * (N-i));
// swap elements at indices i and r
int t = perm[r];
perm[r] = perm[i];
perm[i] = t;
}
// print results
for (int i = 0; i < M; i++)
System.out.print(perm[i] + " ");
System.out.println();
}
2番目のループmain(.*?) {.*?}
の終わりで停止して戻ってくるので、明らかに私はただ探すことはできませんfor
public static void main(String[] args) {
int M = Integer.parseInt(args[0]); // choose this many elements
int N = Integer.parseInt(args[1]); // from 0, 1, ..., N-1
// create permutation 0, 1, ..., N-1
int[] perm = new int[N];
for (int i = 0; i < N; i++)
perm[i] = i;
// create random sample in perm[0], perm[1], ..., perm[M-1]
for (int i = 0; i < M; i++) {
// random integer between i and N-1
int r = i + (int) (Math.random() * (N-i));
// swap elements at indices i and r
int t = perm[r];
perm[r] = perm[i];
perm[i] = t;
}
それだけでは不十分です。
この単純なawkスクリプトを変更して、開いた中括弧と閉じた中括弧の数を保持し、コメントを無視するにはどうすればよいですか?そして、それが最初の関数よりも優れている関数のすべての出現を出力する場合。
編集:これは以前は本当に明確ではありませんでしたが、正規言語ではこれを解決できないことを認識しています。そのため、awkで何かを求めています。awkは数えることができ、私が求めていることを実行できることを私は知っています。