shell学习笔记

1tr命令


用途:translate 可以对字符进行替换、删除、压缩。
语法:tr 选项  string1 string2
选项: 
        -c complement 补集
        -d delete     删除
        -s squence    压缩(将重复的字符浓缩)
string1 要被替换,删除,压缩的源字符串,string2 用来替换的字符串
eg:echo “HELLO WORLD” | tr ‘A-Z’ ‘a-z’
      hello world 字符串不是整体进行替换,是按照顺序一个一个进行替换的
eg:echo “hello world” | tr -d ‘hello’ 
      wrd  tr 会删除它匹配到的全部字符串 
eg:echo “a1b2c3d4” | tr -d ‘0-9’ 
       abcd
eg:“aa1dd/*4-#5$” | tr -d -c ‘0-9’ 
       145 -c字符集补集,将不在补集中的所有字符删除        

2 grep命令


用途:用于在一个或多个文件中查找关键字;不用于查找文件;
语法:grep 选项   'find-char'  filename  

在grep命令中输入字符串参数时,最好用双引号括起来,例如:“string”.
 这样可以防止被误解为shell命令,二来可以查找多个单词组成的字符串,例如:“jet  liu”.
 不用双引号,liu会被认为是另一个文件.
 在调用变量时,也应该使用双引号. grep“$var”.
 在调用模式匹配时,应使用单引号.
选项:
       -f pat-file(合适的) 从pat-file中按照模式进行匹配,相当于指定文件
       -i 模式匹配忽略大小写
       -l 列出匹配模式的文件名称,而非匹配的具体行
       -n 显示匹配的行及行号
       -v 反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行
       -c 只输出匹配行的计数.
       -P 利用perl 正则语法进行匹配.
  egrep 可以让一个文件作为保存的字符串,进行匹配,需要使用-f开关.
  eg:grep -n '[program]'  regular_express.txt
         9:Oh! This is my first program.

3 sort


用途:将文件的每一行作为一个单位,相互比较,最后升序输出(默认升序)
语法:sort 选项 file
选项:
       -r 从大到小排序
       -o 将排序结果写到我们想要写的文件里
          如果,将原文件排序后写到另一个文件,用-o和> 均可,若还写到原文件,必须-o
       -n 以数值大小排序     -nr 以数值大小 反向排序
       -t 制定某个字符作为分隔字符 (同 cut -d)
       -k 定义排序键值字段(按列进行排序)

eg:sort -n -k 2 -t:t1.txt 
    按t1中的第二列升序输出
eg:liu  172 10000
    cai  168 5000
    guo  178 3000
    zhao 168 2000
    zhou 172 5000
按姓名顺序排序:sort  -t ' '  -k 1 file
  身高              :sort -t ' '  -k 2 file
按身高,身高相同,按工资升序排序:sort -n -t ' '  -k2 -k3 file (有的无法识别两个-k选项)
按工资降序排序,工资相同,按身高升序排序: sort  -t ' ' -k 3r -k 2n file
其中,2n,3r中的n,r属于排序键值字段。相当于 -n,-r。

排序键值字段类型
   b 忽略开头的空白
   d 字典顺序
   f 不区分字母的大小写
   i 忽略无法打印的字符
   n 以数字比较
   r 倒置顺序的顺序

eg:sort -t ' ' -k 1.2 file
表示对一个域的第二个字符开始到本域最后一个字符位置的字符串进行排序
eg:sort -t ' ' -k 1.2 1.2 -k 3,3nr file
只对第二个字母进行排序,没有后面的1.2,将从第二个字符开始到本域最后一个字符位置的字符串进行排序
-k3 ,3nr 只对第三个域进行降序排序

4 sed命令


用途:sed是一种在线编辑器,一次处理一行内容。
     处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间” (pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等

语法:sed  选项  'edit command'  file
     sed  -f  script_file  file
选项:-e 'edit command' 
        将edit command 使用在输入数据上,当有多个命令需要应用时,就必须使用-e
        -f script-file
         从指定的脚本里读取命令
        -n 
         不是每个最后已修改结果行都正常打印,而是显示以p指定的(处理过的)行
 eg:sed  's/\/home\/tos\//\/home\/lt\//' filename
     将/home/tos/ 替换为 /home/lt/   (注意,/ ; :都可以作为定界符)       
 eg:sed  's/moding/moden/g' filename
     将moding替换为modern
 eg:sed -n 's/^west/north/p' filename
     将west开头的行替换为north,并显示出来
 eg:sed  '/^ *$/d filename
     删除文件的空行
 eg:sed 's/[0-9] [0-9][0-9]$/& .5/' filename
     将file文件中以3个数字结尾的行,替换为原来的数字+ .5,&代表搜索到的字符串.
 eg:sed 's/\(mod)ing/\1en/g' filename
     将moding 替换为moden
     

 eg:sed '2,5d' file
     显示除去2-5行的文件
 eg:sed '/10[1-4]/d'
     显示文件除去101-104的行
eg:sed -n '/101/,/105/p' < example.txt
    显示example中从101-105的行.
eg:sed -e 's/foo/bar/g'  -e 's/chicken/cow/g' filename >file1.txt
    通过-e将多个命令传递给sed

& 在替代文本里表示:从此点开始,替代成匹配于正则表达式的整个文本
g global 全局性 全部的意思 没有g的话,只会对第一个匹配到的进行处理
s 命令里的空模式,指使用前一个正则表达式

5 cut 命令


用途:选取命令,取出所需,一般针对行操作.
语法:cut  [-bn] file 或者cut -c file  cut -df file,必须指定-b,-c,-f之一
选项:-b 以字节为单位进行分割
     -c 以字符为单位进行分割
     -d 指定分隔符,用来帮助-f
     -f 指定显示那个区域.
-b -c,只能在固定的文档中提取信息,很多时候,bc没有区别.
对于非固定格式的文档,用域分隔:
cut -d :-f 1
用-d设置间隔符是:,然后用-f来截取我们所规定的第一个域.
cut -d :-f 3-5
截取以:作为分隔符的第三个到第五个这部分内容.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,864评论 6 494
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,175评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,401评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,170评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,276评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,364评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,401评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,179评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,604评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,902评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,070评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,751评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,380评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,077评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,312评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,924评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,957评论 2 351

推荐阅读更多精彩内容