跳至主要内容

Oracle学习笔记20080128

表7-1 基本元字符集及其含义
^ 只匹配行首
$ 只匹配行尾
* 一个单字符后紧跟
*,匹配0个或多个此单字符
[ ] 匹配[ ]内字符。可以是一个单字符,也可以是字符序列。可以使用 - 表示[ ]内字符序列范围,如用[1-5]代替[12345]\ 只用来屏蔽一个元字符的特殊含义。因为有时在shell中一些元字符有 特殊含义。\可以使其失去应有意义.
只匹配任意单字符pattern\{n\} 只用来匹配前面pattern出现次数。n为次数pattern\{n,\} m 只含义同上,但次数最少为npattern\{n,m\} 只含义同上,但pattern出现次数在n与m之间
实例:A\{2\}B出现的AAB,A\{4\}B出现的是AAAAB或AAAAAAAAB

表7-2经常使用的正则表达式举例
^ 对行首
$ 对行尾
^[the] 对以the开头行
[Ss]igna[lL] 对匹配单词signal、signaL、Signal、SignaL[Ss]igna[lL]\. 对同上,但加一句点[mayMAY] 对包含may大写或小写字母的行
^USER$ 对只包含USER的行[tty]$ 对以tty结尾的行\. 对带句点的行^d..x..x..x 对对用户、用户组及其他用户组成员有可执行权限的目录
^[^l] 对排除关联目录的目录列表
[.*0] 对0之前或之后加任意字符
[000*] 对000或更多个
[iI] 对大写或小写I[iI][nN] 对大写或小写i或n
[^$] 对空行[^.*$] 对匹配行中任意字符串
^......$ 对包括6个字符的行[a-zA-Z] 对任意单字符[a-z][a-z]* 对至少一个小写字母
[^0-9\$] 对非数字或美元标识
[^0-0A-Za-z] 对非数字或字母[123] 对1到3中一个数字
[Dd]evice 对单词device或DeviceDe..ce 对前两个字母为De,后跟两个任意字符,最后为ce\^q 对以^q开始行^.$ 对仅有一个字符的行^\.[0-9][0-9] 对以一个句点和两个数字开始的行'"Device"' 对单词deviceDe[Vv]ice\. 对单词Device或device[0-9]\{2\}-[0-9]\{2\}-[0-9]\{4\}对日期格式dd-mm-yyyy[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}对IP地址格式nnn.nnn.nnn.nnn[^.*$]对匹配任意行

tr用来从标准输入中通过替换或删除操作进行字符转换。
tr主要用于删除文件中控制字符或进行字符转换。
使用tr时要转换两个字符串:字符串1用于查询,字符串2用于处理各种转换。tr刚执行时,字符串1中的字符被映射到字符串2中的字符,然后转换操作开始。
带有最常用选项的t r命令格式为:
tr-c-d-s["string1_to_translate_from"]["string2_to_translate_to"] file
这里:-c 用字符串1中字符集的补集替换此字符集,要求字符集为 A S C I I。
-d 删除字符串1中所有输入字符。
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
Input-file是转换文件名。虽然可以使用其他格式输入,但这种格式最常用。
字符范围:[a-z] a-z内的字符组成的字符串。[A-Z] A-Z内的字符组成的字符串。[0-9] 数字串。/octal 一个三位的八进制数,对应有效的ASCII字符。[O*n] 表示字符O重复出现指定次数n。因此[O*2]匹配OO的字符串。
例子,去除重复的字$tr -s "[a-z]" < oops.txt

表12-1 tr中特定控制字符的不同表达方式
速记符 含义 八进制方式
\a Ctrl-G 铃声 \007
\b Ctrl-H 退格符 \010
\f Ctrl-L 走行换页 \014
\n Ctrl-J 新行 \012
\r Ctrl-M 回车 \015
\t Ctrl-I tab键 \011
\v Ctrl-X \030

说实话tr没看懂多少- -

登录环境,在配置oracle的时候我们在oracle用户目录下配置了$oracle_home和$oracle_base当然字母都是大写,在.profile或者.bashrc下面都可以,其他的就也不多讲了stty一般格式为:stty name character
最常用的stty命令使用在下述设置上:
名称 键 含义
intr ^C 终止进程
echo 打开echo功能
-echo 关闭echo功能eof
^D 文件尾;注销kill
^Y 删除一行start
^Q 滚动屏幕文本stop
^S 停止滚动屏幕文本
stty的一个可用选项为:stty -g。此选项允许以可读格式保存stty现有设置,便于以后重置回stty。
环境和shell变量

评论

此博客中的热门博文

Python学习笔记20100117

映射list   Dictionary 是用{}. list 是一那个[]. turple是用() 当你定义过dictionary后,你可以使用d.keys(), d.values(),d.items()将定义后的时候分别显示出来 当然可以将list里的值加减乘除,也可以如一般的定义直接重新复制这个list. 链接与分割字符串的 li=";", join(li) 则显示的就是 分隔符为;的数 如果使用li=li.split(";")则将刚刚;的分隔符删除,而split里也可定义域,如li.split(";",1)   自省 <---这是啥 之前在使用的时候发觉有些书本上的模块不能调用,很多是py脚本定义过的函数。 下载该脚本s,然后上传至指定位置。 >>>import sys >>>sys.path >>>sys.path.append("绝对位置")然后就能调用这些脚本和参数了。 删除 >>>sys.path.pop() 定义一个参数是 def info(test, test1=10.test2=12): info是函数名,test是必备参数,因为没有定义值,test1和test2是可选参数,定义了初始值   以上是外部函数的调用,下面转到内部函数 内部函数有type,str,dir及其他   ---type 返回任意字符的类型,模块也可以。types模块 >>> type(1) <type 'int'> >>> li=[] >>> type(li) <type 'list'> >>> import odbchelper >>> type(odbchelper) <type 'module'> >>> type(sys) <type 'module'> >>> import types ...

Python学习笔记20100128

methodList = [method for method in dir(object) if callable(getattr(object, method))] ###插一句, ifconfig pcn0 unplumb 去禁solaris的网卡plumb起网卡   and, or  已经and-or一起用。 and 两者为真,print第二个数,一个为假一个为真返回假,三者为真返回最后一个真。 or 两个为真,返回第一个, 一个为假一个为真返回真,三者为假返回最后一个假   lambda可快速定义最小值函数   g = lambda x:x*2 g(3) 6 (lambda x:x*2)(3)   doc string print getattr(object,mothod).__doc__   ljust ljust 用空格填充字符串以符合指定的长度。info 函数使用它生成了两列输出并将所有在第二列的 doc string 纵向对齐。 如果小于的话不会从中截断   -----面向对象 首先导入,你可以选择import module or from module import module 如果你要经常访问模块的属性和方法,且不想一遍又一遍地敲入模块名,使用 from module import。 如果你想要有选择地导入某些属性和方法,而不想要其它的,使用 from module import。 如果模块包含的属性和方法与你的某个模块同名,你必须使用 import module 来避免名字冲突   -----类的定义 class Lofs    pass   这个类的名字是 Loaf,它没有从其它类继承。 类名通常是第一个字母大写,如:EachWordLikeThis,但这只是一个习惯,不是一个必要条件。   这个类没有定义任何方法或属性,但是从语法上,需要在定义中有些东西,所以你使用 pass。这是一个 Python 保留字,仅仅表示 “向前走,不要往这看”。它是一条什么都不做的语句,当你删空函数或类时,它是一个很好的占位符。   你可能猜...

Back to Blog again

     My last blog was almost 6 years again.  lots of things happening those years. like marriage, and move to another country, simply relocation, something is very big in my life.      Back to now,  I guess it is a very good time to start with the blog again. no matter daily life or the tech parts.      These blog may or will contains various languages, Chinese, English or Few Japanese. The first thing, I change the profile to Kamata life, Kamata is Japanese words. "鎌田"  as Kanji. why this change happened, due to we will move from Tamagawa "玉川" to Kamata very soon. I hope I can start to write this not daily, but I hope I can do this continuously.