linux学习之sed grep

  1. sed这个命令最大的作用就是替换,以以下的文档内容为例子

在vim的命令行模式下可以使用:%s/some/more/将文档中some替换成more

用sed命令就方便多了: sed  ‘s/some/more/g‘ data.txt --这里没有修改文档原文,最多算个预览

sed  -i ‘s/some/more/g‘ data.txt   -------有了i参数可以直接将修改保存在文档中

sed ‘s/^/&id /g‘ data.txt 在文档每一行的行头添加id+空格

cat data.txt | grep -v ‘^$‘ | sed ‘s/^/&id /g‘ ---在每一行的非空格行的行头添加id,^符号表示开头

可以看到这里的空格行不在了,那是grep -v ‘^$‘ 导致的,grep将在后面讲到

sed ‘s/$/& id /g‘ data.txt 在文档每一行的结尾添加空格+id,$符表示结尾

sed ‘/some/i ##########################‘ data.txt 在有some的那一行前添加一行#,i参数

sed ‘/some/a ##########################‘ data.txt 在有some的那一行后添加一行#,a参数

sed -n ‘/some/p‘ data.txt  打印含有some的行,-n就是针对行做操作,p参数就是答应,sed负责挑选

也可以选择指定的行做操作:sed -n ‘1,5p‘ data.txt 打印1-5行

以下是结合其它命令对文档进行指定操作:

以上是原始文档,最终的目的是要选出文档中最大和最小的数字

cat number.txt | sed ‘s/ /\n/g‘ | grep -v "^$" | sort -nr | sed -n ‘1p;$p‘

现在来拆解这些命令

cat number.txt | sed ‘s/ /\n/g‘  --将文档中的空格符替换成换行符,这样所有的数字就变成一列了

cat number.txt | sed ‘s/ /\n/g‘ | grep -v "^$" 将排成一列中的空格行去掉,排除首位都是空的

cat number.txt | sed ‘s/ /\n/g‘ | grep -v "^$" | sort -nr  sort从大到小排序所有数字

cat number.txt | sed ‘s/ /\n/g‘ | grep -v "^$" | sort -nr | sed -n ‘1p;$p‘ 打印出第一行和最后一行用;

其中的$表示结尾而;表示前面和后面是分开打印不是连续的用,则是连续打印多行sed -n ‘1,5p‘这样

2.grep 命令的作用主要是匹配字符

cat number.txt | grep "4" 表示匹配含有45的那一行

cat number.txt | grep -v "4" 表示排除包含有4这个字符的那一行,这里的“”和‘’没有什么区别

在安装软件时grep命令去查看:rpm -qa | grep mysql ---查看mysql的一些相关的安装包

用sed命令去修改某些文件:sed -i ‘/SELINUX/s/enforcing/disabled/‘ /etc/selinux/config ---永久关闭selinux

时间: 2024-10-11 07:15:18

linux学习之sed grep的相关文章

linux学习---正则表达式与grep

正则表达式(Regular Expression(RE)) 是透过一些特殊字符的排列, 用以"搜寻/取代/删除"一列或多列文字字符串, 简单的说, 正则表达式就是用在字符串的处理上面的一项"表达式". 正则表达式并不是一个工具程序, 而是一个字符串处理的标准依据, 如果想要用用正则表达式处理字符串, 就要使用支持正则表达式的工具程序, 这样的程序有很多, 如vi, awk, grep, sed... grep 基本规则: grep [-acinv] [--color

Linux学习之正则表达式&grep&egrep

我们经常需要在文档中搜索符合自己要求的内容,这些部分可能分散在文档的各个位置,各个角落.可以利用关键字例如/keyword或者?keyword一个一个的搜索,还有我可能不止想搜索关键字,而是指定一个范围,怎样操作?而且怎样把这些搜索到的内容集中地显示出来?使用正则表达式搜索字串的grep命令和egrep命令就可以满足我们的这个要求. 正则表达式(Regular Expression)是一种字符书写的模式,以行为单位进行字符的处理,透过一些特殊字符的辅助,利用这种模式可以轻易地达到对字符的搜索.删

Linux学习笔记之grep命令及sed 命令相关选项

#grep  强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. 根据模式,搜索文本 ,并将符合模式的文本行显示出来,常与正则表达式相结合使用. [[email protected] ~]# grep --h 用法: grep [选项]... PATTERN [FILE]... 在每个 FILE 或是标准输入中查找 PATTERN. 默认的 PATTERN 是一个基本正则表达式(缩写为 BRE). 例如: grep -i 'hello world' menu.h main.c

linux学习记录-sed

文本处理工具 grep sed(流编辑器) awk(报告文本生成器) sed基本用法 默认不编辑原文件,仅对模式空间中的数据处理. sed:Stream EDitor sed [options]'AddressCommand' file ... -n 静默模式   不显示模式空间中的内容 -i 修改原文件 -e script -e script:可以同时指定多个脚步 -f :指定一个脚本文件 -r:表示使用扩展正则表达式 Address 1.StartLine,EndLine 比如1,100 2

linux学习:sed与awk与tr用法整理

流编辑器:sedsed 's/pattern/replace_string/' file #从给定文本中的字符串利用正则表达式进行匹配并替换每一行中第一次符合样式的内容sed 's/text/replace/' file > newfile #替换每一行中第一次符合样式的内容并将替换结果重定向到新文件sed -i 's/test/replace/' file #参数-i使用替换每一行中第一次符合样式的内容结果应用于源文件sed 's/pattern/replace_string/g' file

Linux学习之路-grep和正则表达式的应用

grep和正则表达式的应用 Linux文本处理三剑客:        grep:文本过滤工具:        sed:文本编辑器(行):stream editor        awk:文本报告生成器:Linux上awk的实现为gawk grep: Global search REgular expression and Print out theline. 作用:文本搜索工具,根据用户指定的"模式(pattern)"逐行去搜索目标文本,打印匹配到的行: 模式:由正则表达式的元字符及文

Linux 三剑客 -- awk sed grep

顶配awk,中配sed,标配grep 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件等等.如果我们相对这些文件进行一些编辑查询等操作时,我们可能会想到一些vi,vim,cat,more等命令.但是这些命令效率不高,这就好比一块空地准备搭建房子,请了10个师傅拿着铁锹挖地基,花了一个月的时间才挖完,而另外一块空地则请了个挖土机,三下五除二就搞定了,这就是效率.而在linux中的"挖土机"有三种型号:顶配awk,中配sed,标配grep.使用这些工具,我们能够在达到

Linux学习笔记:grep、egrep

文本处理三剑客: grep系:grep .egrep .fgrep ,文本搜索工具,基于"PATTERN"对于给定的文本进行模糊搜索,grep系默认工作于贪婪模式下. sed:Stream EDitor,流编辑器,行编辑器,文本编辑工具: awk:gawk--GUN awk,文本格式化工具,文本报告生成器,文本处理的编程语言: grep系: grep:利用正则表达式进行全局搜索并将匹配的行显示出来: grep [OPTIONS] PATTERN [FILE.....] PATTERN:

Linux学习之sed编辑器

一 介绍: sed流编辑器(stream editor)的功能强大,能把文档或字符串通过自己想要的方式或内容输出至屏幕或文件,通常和正则表达式密切配合. 二 命令详细内容 sed命令:  sed [option] 'addresscommand' file ①option: -n:表示此时处于静默模式,不输出模式空间,即当command中是p时仅输出一次 -r:支持扩展的正则表达式 -i:修改源文件 -f:通常用为-f /path/about/script 用一连串的脚本处理 -e script