grep,sort,uniq 用法例子
生活随笔
收集整理的這篇文章主要介紹了
grep,sort,uniq 用法例子
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.grep命令可以從一個或者多個文件中搜索特定的字符串模式,其一般格式為:grep pattern files例如,要從文件test中尋找每個unix所在的行:grep unix test有用的選項有:-i :表示匹配過程中不區(qū)分大小寫字母。-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取出指定輸入文件的每一行,將它們按升序排列,特殊字符按照它們的內(nèi)部編碼排序。sort有許多選項,經(jīng)常用的有:-u選項:告訴sort命令,在輸出結(jié)果中去除重復(fù)的行。-r選項:顛倒排列順序。-o選項:默認情況下,sort把輸出結(jié)果寫入標準輸出。要把結(jié)果寫入文件,可以使用-o選項指定輸出文件。-n選項:表示把行中的第一個字段當作數(shù)值,數(shù)據(jù)按算術(shù)方法排序。如果用戶想用第二個字段排序,則可以使用+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.如果要在文件中查找重復(fù)的行,uniq命令會很有用,該命令一般格式為:uniq in_file out_file該格式中,uniq把in_file復(fù)制到out_file,處理過程中,去掉其中的重復(fù)行,uniq對重復(fù)行的定義是完全匹配的連續(xù)行。如果不指定out_file,結(jié)果就寫入標準輸出。-d選項:它告訴uniq把文件中的重復(fù)行寫入out_file,不管它們在文件中連續(xù)出現(xiàn)多少次,這樣的連續(xù)行只寫一次-c選項:帶-c選項后,每行最前面顯示該行在輸入文件中出現(xiàn)的次數(shù)。
$ 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
$ #Unix
-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取出指定輸入文件的每一行,將它們按升序排列,特殊字符按照它們的內(nèi)部編碼排序。sort有許多選項,經(jīng)常用的有:-u選項:告訴sort命令,在輸出結(jié)果中去除重復(fù)的行。-r選項:顛倒排列順序。-o選項:默認情況下,sort把輸出結(jié)果寫入標準輸出。要把結(jié)果寫入文件,可以使用-o選項指定輸出文件。-n選項:表示把行中的第一個字段當作數(shù)值,數(shù)據(jù)按算術(shù)方法排序。如果用戶想用第二個字段排序,則可以使用+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.如果要在文件中查找重復(fù)的行,uniq命令會很有用,該命令一般格式為:uniq in_file out_file該格式中,uniq把in_file復(fù)制到out_file,處理過程中,去掉其中的重復(fù)行,uniq對重復(fù)行的定義是完全匹配的連續(xù)行。如果不指定out_file,結(jié)果就寫入標準輸出。-d選項:它告訴uniq把文件中的重復(fù)行寫入out_file,不管它們在文件中連續(xù)出現(xiàn)多少次,這樣的連續(xù)行只寫一次-c選項:帶-c選項后,每行最前面顯示該行在輸入文件中出現(xiàn)的次數(shù)。
$ 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
$ #Unix
總結(jié)
以上是生活随笔為你收集整理的grep,sort,uniq 用法例子的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PL/SQL如何设置 窗口列表默认显示
- 下一篇: 如何检查防火墙引起的端口不通