wc 命令用于统计文件内容的行数、单词数、字母数。
但是如果想统计一个目录下所有文件的行数,wc 并没有提供递归统计。
不过,可以结合 find 命令,例如:
wc -l `find . -name '*.go'`
其中,-l 参数是统计行数,find . -name *.go
是查找当前目录(包含子目录)下所有的go
文件。
当然,实现方法有很多,这个比较简单易记。
测试效果如下:
[@k:nsqd (master)]$ wc -l `find . -name '*.go'`
12 ./backend_queue.go
22 ./buffer_pool.go
589 ./channel.go
223 ./channel_test.go
607 ./client_v2.go
5 ./context.go
9 ./dqname.go
10 ./dqname_windows.go
33 ./dummy_backend_queue.go
105 ./guid.go
42 ./guid_test.go
736 ./http.go
943 ./http_test.go
99 ./in_flight_pqueue.go
81 ./in_flight_pqueue_test.go
20 ./logger.go
198 ./lookup.go
151 ./lookup_peer.go
100 ./message.go
752 ./nsqd.go
449 ./nsqd_test.go
151 ./options.go
1018 ./protocol_v2.go
1919 ./protocol_v2_test.go
240 ./stats.go
159 ./stats_test.go
162 ./statsd.go
48 ./tcp.go
491 ./topic.go
241 ./topic_test.go
9615 total