0

ff 行を含むファイルから行 3、9、12、15 のみを読み取るにはどうすればよいですか。アイデアは、 x と y を取得するたびに、 x と y を含む行の最後の行を印刷したかったということです。たとえば、次のような awk スクリプトがあるとします。 BEGIN { name = $2; 値=$3; } { if(name == x && value==y && スキャンは 3、9、12、15 行目に達します) printf("hello world") }. 「3行目、9行目、12行目、15行目にスキャンが到達しました」の代わりにどのような表現を使用できますか

1 x y
2 x y 
3 x y 
4 a d
5 e f
6 x y
7 x y
8 x y
9 x y
10 g f
11 x y
12 x y
13 p r
14 w c
15 x y
16 a z
4

3 に答える 3

2

片道awk:

$ awk '/^[0-9]+ x y$/{a=$0;f=1;next}f{print a;f=0}' file
3 x y
9 x y
12 x y
15 x y

なしの片道awk:

$ tac file | uniq -f1 | fgrep -w 'x y' | tac
3 x y
9 x y
12 x y
15 x y
于 2013-09-30T07:52:56.113 に答える