Linux 常用文本处理 grep、sed

grep、sed、awk文本处理三剑客,但是awk相对复杂这里暂时先不说明后续补充

grep

grep是一款强大的文本搜索工具,支持正则表达式。
全称( global search regular expression(RE) and print out the line)

语法:grep [option]… PATTERN [FILE]…

usage: grep [-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A num] [-B num] [-C[num]]
 [-e pattern] [-f file] [--binary-files=value] [--color=when]
 [--context[=num]] [--directories=action] [--label] [--line-buffered]
 [--null] [pattern] [file ...]

常用参数

			-v        取反
            -i        忽略大小写
            -c        符合条件的行数
            -n        输出的同时打印行号
            ^*        以*开头         
            *$         以*结尾 
            ^$         空行 
  • 查找my.txt中有”你好“ 这个词语的行列出来

grep 你好 my.txt

  • 查找my.txt中有”你好“ 这个词语的行列出来明细和行号

grep -n 你好 my.txt

  • 查找my.txt中不包含”你好“这个词语的行并列出来

grep -v 你好 my.txt

  • 查找my.txt中包含”你好“一共的行数

grep -c 你好 my.txt

  • 查找my.txt中有”abc“ 这个词语的行并列出来,不区分大小写

grep -i abc my.txt

  • 查找my.txt中开头为J的行列出来

grep ‘^J’ my.txt

  • 查找my.txt中结尾为”你好“的行列出来

grep “你好$” my.txt

sed

sed 的工作原理如下图

在这里插入图片描述

命令: sed
语法 : sed [选项]… {命令集} [输入文件]…
常用命令:

    d  删除选择的行    
            s   查找    
            y  替换
            i   当前行前面插入一行
            a  当前行后面插入一行
            p  打印行       
            q  退出     

 替换符:

            数字 :替换第几处    
            g :  全局替换    
            \1:  子串匹配标记,前面搜索可以用元字符集\(..\)
            &:  保留搜索刀的字符用来替换其他字符
  • 替换my.txt 第一次”你好“为”你好吗“

sed ‘s/你好/你好吗/’ my.txt

  • 替换my.txt 全局”你好“为”你好吗“

sed ‘s/你好/你好吗/g’ my.txt

  • 替换my.txt从第二行到末尾”你好“为”你好吗“

sed ‘2,$s/你好/你好吗/’ my.txt

  • 删除第二行

sed ‘2d’ my.txt

  • 删除第二行到第四行

sed ‘2,4d’ my.txt

  • 替换第二行为helloword

sed ‘2c\hello world’ my.txt

  • 替换第二行到末尾为helloword

sed ‘2,$c\hello world’ my.txt

  • 输出前三行

sed ‘3q’ my.txt

把my.txt文本中包含”你好“的行输入到my1.txt

sed -n ‘/你好/w my1.txt’ my.txt

1. 实验目的 调度的实质是操作系统按照某种预定的策略来分配资源。进程调度的目的是分配CPU资源。由于进程调度程序执行的频率很高,因此调度算法的好坏直接影响到操作系统的性能。本实验的目的是编程模拟实现几种常用的进程调度算法,通过对几组进程分别使用不同的调度算法,计算进程的平均周转时间和平均带权周转时间,比较各种算法的性能优劣。 2. 实验原理 [1]. 进程调度算法描述 进程调度算法包括先来先服务调度算法、最短作业时间优先(抢占和非抢占)、最高响应比调度算法4种。(每个人必须做FCFS,然后在后面的三种中任选一种,即每个人必须做2种调度算法的模拟。) [2]. 衡量算法性能的参数 计算进程的平均周转时间和平均带权周转时间。 3. 实验内容 (1)编程实现本实验的程序,要求: [1]. 建立进程的进程控制块,进程控制块至少包括: a) 进程名称; b) 进程需要执行时间; c) 进入就绪队列时间; d) 进程执行开始时间 e) 进程执行结束时间 [2]. 编程实现调度算法。 [3]. 进程及相关信息的输入。这些信息可以直接从键盘上输入,也可以从文件读取。 [4]. 时间片与时间流逝的模拟。本实验需要对算法的执行计时,程序应该提供计算时间的方法。一种最简单的方法是使用键盘,比如每敲一次空格代表一个时间片的流逝。另一种方法是使用系统时钟。 [5]. 一组进程序列执行完毕,打印出结果信息。程序需要计算出每个进程的开始执行时间、结束时间、周转时间和带权周转时间,并为整个进程序列计算平均周转时间和平均带权周转时间。程序将计算结果按一定的格显示在计算机屏幕上或输出到文件中。打印出进程调度顺序图。 [6]. 实现数据在磁盘文件上的存取功能。 (2)对下列就绪进程序列分别使用上面的几种算法进行调度,计算每种算法下的平均周转时间和平均带权周转时间。 进程号 到达时间 要求执行时间 0 0 1 1 1 35 2 2 10 3 3 5 4 6 9 5 7 21 6 9 35 7 11 23 8 12 42 9 13 1 10 14 7 11 20 5 12 23 3 13 24 22 14 25 31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值