2010年1月21日星期四

Awk處理根據行處理文本的例子

現有一個測試文本

a.txt

107542 A000904
104005 A000426
  64636 A000347
  54304 A000900
  52480 A000901
  34814 A000930
  14346 A000562
  10239 A000929
   9821 A000782
  8515 A000417
   7161 A000599
   6961 A000813
   6845 A000422
   5676 A000092
   5329 A000685
   5288 A000547
   4939 A000834
   4829 A000903
   4804 A000011
   4245 A000010
   4161 A000302
   3831 A000550

如何取行號>10的呢?

[root@test tmp]# awk 'NR > 10 {print $1 "----" $2}' a.txt >/tmp/b.txt

查看b.txt的文本

b.txt
------------
7161----A000599
6961----A000813
6845----A000422
5676----A000092
5329----A000685
5288----A000547
4939----A000834
4829----A000903
4804----A000011
4245----A000010
4161----A000302
3831----A000550

如何取行號<10的呢?

[root@test tmp]# awk 'NR < 10 {print $1 "----" $2}' a.txt >/tmp/c.txt

c.txt
107542----A000904
104005----A000426
64636----A000347
54304----A000900
52480----A000901
34814----A000930
14346----A000562
10239----A000929
9821----A000782

第10行是什麼呢?

10    8515 A000417

[root@test tmp]# awk 'NR <= 10 {print $1 "----" $2}' a.txt >/tmp/d.txt
[root@CRRACTEST tmp]# cat d.txt
107542----A000904
104005----A000426
64636----A000347
54304----A000900
52480----A000901
34814----A000930
14346----A000562
10239----A000929
9821----A000782
8515----A000417
[root@test tmp]#

記錄一下,這個腳本對於大文本處理相當有用!

没有评论:

发表评论