grep,sort,uniq 用法例子

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
$
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值