Chinaunix首页 | 论坛 | 博客
  • 博客访问: 531940
  • 博文数量: 159
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 1264
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-20 14:15
个人简介

LoveMoney

文章存档

2016年(2)

2015年(8)

2014年(148)

2011年(1)

分类: Python/Ruby

2014-05-27 15:45:58


       1.grep命令可以从一个或者多个文件中搜索特定的字符串模式,

其一般格式为:grep pattern files
例如,
要从文件test中寻找每个unix所在的行:grep unix test
有用的选项有:
-i  :表示匹配过程中不区分大小写字母。
-v :显示不包含字符的行。
-l  :只给出包含给定模式的文件列表,而不给出具体的行。
-n :文件中符号指定模式的每一行前都加上该行在文件中的相对行。
-s  :Suppress error messages about nonexistent or unread-able files.
$ ls -l *.sql > test.txt
$ grep -isn oracle test.txt
1:-rw-r--r-- 1 oracle dba 5616 Nov 29 15:50 TFSODEP8.sql
2:-rw-r--r-- 1 oracle dba 11073 Nov 1 11:01 account_defs.sql
3:-rw-r--r-- 1 oracle dba 7236 Aug 15 17:21 cold_backup_command.sql
4:-rw-r--r-- 1 oracle dba 883 Aug 15 17:20 coldbakup.sql
5:-rw-r--r-- 1 oracle dba 4748 Nov 1 11:35 credit_defs.sql
6:-rw-r--r-- 1 oracle dba 0 Nov 1 14:00 currentdeposit_defs.sql
7:-rw-r--r-- 1 oracle dba 4292 Nov 1 13:44 customer_defs.sql
8:-rw-r--r-- 1 oracle dba 3527 Nov 2 11:35 del_table.sql
9:-rw-r--r-- 1 oracle dba 31170 Nov 29 15:56 genuserdef.sql
10:-rw-r--r-- 1 oracle dba 12589 Nov 2 11:32 get_table.sql
11:-rw-r--r-- 1 oracle dba 10509 Nov 1 11:01 get_table1.sql
12:-rw-r--r-- 1 oracle dba 1004 Nov 1 10:57 get_user.sql
13:-rw-r--r-- 1 oracle dba 2257 Jul 12 08:43 p.sql
14:-rw-r--r-- 1 oracle dba 9376 Nov 2 11:33 service_def.sql
15:-rw-r--r-- 1 oracle dba 2491 Nov 1 13:45 serviceorder_defs.sql
16:-rw-r--r-- 1 oracle dba 1363 Nov 1 13:45 staff_defs.sql
17:-rw-r--r-- 1 oracle dba 32811 Nov 2 11:35 staff_del.sql
18:-rw-r--r-- 1 oracle dba 4021 Nov 29 15:20 tfsbgseg.sql
19:-rw-r--r-- 1 oracle dba 9309 Nov 29 15:34 tfsscons.sql
20:-rw-r--r-- 1 oracle dba 9468 Nov 29 15:34 tfstcons.sql
21:-rw-r--r-- 1 oracle dba 2235 Nov 1 10:57 wacos_defs.sql
$ grep -l oracle *
backup1.rcv
backup2.rcv
backup4.rcv
cold_backup_command.sql
coldbakup.sql
genuserdef.sql
initENCLE.ora
itdb.dmp
nohup.out
test.txt
test.txt.new
$

     2.sort命令默认情况下,sort取出指定输入文件的每一行,将它们按升序排列,特殊字符按照它们的内部编码排序。

sort有许多选项,经常用的有:
-u选项:告诉sort命令,在输出结果中去除重复的行。
-r选项:颠倒排列顺序。
-o选项:默认情况下,sort把输出结果写入标准输出。要把结果写入文件,可以使用-o选项指定输出文件。
-n选项:表示把行中的第一个字段当作数值,数据按算术方法排序。如果用户想用第二个字段排序,则可以使用+1n来跳过第一个字段。
-t选项:默认情况下,sort认为要跳跃的字段之间用空格或者制表符分隔,用了-t选项后,跟在-t后的字符被当作分隔符。
$ more test.txt
aaa
ccc
ccc
ccc
ddd
bbb
eee
123
$ sort test.txt
123
aaa
bbb
ccc
ccc
ccc
ddd
eee
$ sort -u test.txt
123
aaa
bbb
ccc
ddd
eee
$ sort -r test.txt
eee
ddd
ccc
ccc
ccc
bbb
aaa
123
$ sort -r test.txt -o sort.txt
$ more sort.txt
eee
ddd
ccc
ccc
ccc
bbb
aaa
123
$ sort -n test.txt
aaa
bbb
ccc
ccc
ccc
ddd
eee
123
$ sort +1n test.txt
123
aaa
bbb
ccc
ccc
ccc
ddd
eee
$ sort -ta test.txt
123
aaa
bbb
ccc
ccc
ccc
ddd
eee
$

     3.如果要在文件中查找重复的行,uniq命令会很有用

该命令一般格式为:uniq in_file out_file  该格式中,uniq把in_file复制到out_file,处理过程中,去掉其中的重复行,uniq对重复行的定义是完全匹配的连续行。如果不指定out_file,结果就写入标准输出。
-d选项:它告诉uniq把文件中的重复行写入out_file,不管它们在文件中连续出现多少次,这样的连续行只写一次
-c选项:带-c选项后,每行最前面显示该行在输入文件中出现的次数。
$ more test.txt
aaa
ccc
ccc
ccc
ddd
bbb
eee
123
$ uniq test.txt
aaa
ccc
ddd
bbb
eee
123
$ uniq -d test.txt
ccc
$ uniq -c test.txt
   1 aaa
   3 ccc
   1 ddd
   1 bbb
   1 eee
   1 123
$
阅读(1051) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~