Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux 三大马车——grep sed awk

Linux 三大马车——grep sed awk

原创
作者头像
Labetaloliiixxx
发布于 2023-03-09 14:15:11
发布于 2023-03-09 14:15:11
1.3K0
举报

grep :搜索文本工具(有点类似于网页上control +F)

代码语言:txt
AI代码解释
复制
grep -w '查找内容' #精确查找关键词

grep -c #含有关键词的行数

grep -v  #反向查找

grep -n #显示匹配成功的行所在行号

grep '查找内容' -r [文件夹] or [文件] #可实现文件夹查找

grep -e ‘’ -e'' #多个关键词查找

grep -f #从文件里读取关键词

grep -i #忽略大小写

eg: 我们可以将多个关键词存入到一个文件中进行查找 这样就不需要不停地输-e

代码语言:txt
AI代码解释
复制
cat > file

关键词1

关键词2

...

^C

less [需要进行检索的文件路径] | grep -f file -w 
结果显示
结果显示

正则表达式:

^ 行首 '^T'表示以T开头的行

¥ 行尾 'T)' 表示以T结尾的行

. 表示换行符之外的任意字符 eg:'f.ee'

? 匹配之前项0次或1次 eg: 'f\?ee'=ee or fee

  • 匹配之前项1次或多次 eg:‘re+’ =re ree reee...

* 匹配之前项0次或多次

[] eg: TATA-box 则可表示为:TATAATAAT. (这里的塔塔盒是指TATAWAWN 其中W=A/T N=ATC/G)

^

|

使用 \ 来切换正则表达式与正常字符

eg:

'f\?ee' 则这里的?是正则表达式

而'f?ee' 的?则是正常的字符

故为了避免麻烦 可使用

代码语言:txt
AI代码解释
复制
grep -E '' 

如果查找多出几行,可能说明关键词不够精确,可以适当延长关键词以达到更精确的查找

eg:

用‘^@’查找的结果,显示有1006行
用‘^@’查找的结果,显示有1006行
延长关键词后,可查找到正确行数
延长关键词后,可查找到正确行数

eg:

人类Y染色体有多少基因?

sed:流编辑器 将文件打印到标准输出流,不修改文件,对文本进行增删改查

sed以行为单位编辑!!

sed options 'scrip' files

'scrip' : ‘address命令 对象 ’

address:

2

2,4

2,+4

2~4

2,$

/pattern/

!

命令:

a 在指定行的后面增加一行

i 在指定行的前面增加一行

d 删除指定行

c 改变指定行的内容

s s/查找/替换/g s/查找/替换/1 s/查找/替换/2

y 把指定行的检索出的内容进行一对一的转换

p 把指定行or修改过的行打印出来

eg:

'1,3d'

'1a hi!' 在第1行后面插入一行,内容为:hi!

'2c Hi' 把第二行的内容改成 Hi

PS:定位的行数是指源文件的行数 而不是新修改过的

sed 's/is/IS/g'

sed 's/is/IS/2'

sed 's/is/IS/'

sed '1~3s/is/IS/' 处理第1、4、7、10行 常运用于fq文件

sed '/www/ s/is/IS/' 处理能匹配到www的行

查:

sed -n '2~4p' 查找并输出某些行

sed -n '/关键词/p' #根据关键词进行查找

sed -n 's/ee/EE/p' #输出的同时被处理

s和y的区别:

s 是将查找到的内容替换掉

y 是一一对应替换 (多用于输出互补碱基)

如何获得反向互补的序列?

awk:

结构:awk [option] '{scrips}' files

默认分隔符:空格or制表符

常用option:-F #自定义分隔符

eg: -F '\t' #将分隔符改为tab 第一个tab为第一列

‘{scrips}’结构:

1.‘{scrips}’

2.‘/pattern/ {script}’

3.'BEGIN{scrips} {scrips} END{scrips}'

输出某列:

awk '{print $9}'

awk '{print $9,$10}'

awk '{print 9"@"10}'

匹配模式:

awk '/UTR/{PRINT $1,$5,$3}' 可以按顺序打印1.5.3列

VS. cut 只能由小到大打印列

awk不仅可以自定义识别的分隔符,还可以定义输出的分隔符

awk '{print $3":"$4"-"$5}'

awk 'BEGIN{OFS=":"} {print $3,$4,$5}'

awk 'BEGIN{OFS=":"} {print NR $3,$4,$5}' #打印出行号

awk '{if(条件) 执行内容}' #awk 的条件循环

awk '{if($=="gene") print $0} else{print $3"is not gene"}'

awk 的运算

+ - * / ** ^ % log() int() 取整数 int(...+0.5) 四舍五入

eg:外显子的长度

awk '/exon/{print $4-$4+1}'

Linux常见字符和含义:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
从零开始的异世界生信学习 linux部分 linux 基础---学习笔记-3 Linux三剑客 grep,sed,awk
-w:word 精确查找某个关键词 pattern less -S Data/example.gtf | grep -w 'gene' ##匹配文件中含有gene的文字
用户10361520
2023/02/21
5790
awk、sed、grep
[https://www.runoob.com/linux/linux-comm-
花落花相惜
2021/12/04
1.3K0
Linux:让你效率起飞的三驾马车
是对字符串操作的一种逻辑公式,就是用事先 定义好的一些特定字符、及这些特定字符的组合,组成一个 “规则字符串”,这个“规则字符串”用来表达对字符串的 一种过滤逻辑。
不会写代码的医学生
2024/03/21
1540
Linux学习笔记-Day13
序列行:一个字母代表一个碱基/氨基酸,为ATCGN或20种氨基酸。#N代表在测序中无法确定具体是什么碱基
用户11190095
2024/07/28
1770
Linux进阶 03 文本处理三驾马车
⭐重头戏来啦!真的很难很繁琐,每个命令下面又有许多个小参数,套娃!先记录下来以后要多看看~
可乐同学与生信死磕到底
2024/04/18
2621
跟萌老师学Linux的第三天
是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
贝诺酯
2023/03/23
1.2K0
生信马拉松 Day13 Linux-3笔记
实际容忍度很高,pattern写在左后,或者options写在pattern后面都可以
阿呆的月历
2024/02/04
1950
Linux三剑客(grep、sed、awk)
下面所说的是Linux中最重要的三个命令在业界被称为“三剑客”,它们是awk,sed,grep。
全栈程序员站长
2022/07/21
3.1K0
Linux三剑客(grep、sed、awk)
五分钟入门文本处理三剑客grep awk sed
grep awk sed是Linux下文本处理常用的命令,能完成很多神奇的操作,今天就分享一下这三个命令最常见的用法
Java识堂
2020/05/27
6990
linux学习第二十六篇:正则介绍,grep,sed,awk命令
正则介绍 正则就是一串有规律的字符串,掌握好正则对于编写shell脚本有很大帮助,各种编程语言中都有正则,原理是一样的。正则表达式是这样解释的:它是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。对于系统管理员来讲,正则表达式贯穿在我们的日常运维工作中,无论是查找某个文档,抑或查询某个日志文件分析其内容,都会用到正则表达式。其实正则表达式,只是一
用户1215343
2018/02/05
4.1K0
linux学习第二十六篇:正则介绍,grep,sed,awk命令
Linux的文本处理工具浅谈-awk sed grep
日志样子举例如下: http://youku.com 200 http://youku.com 302 http://youku.com 403 http://youku.com 502 http://baidu.com 302 http://baidu.com 404 现想使用awk命令按域名统计 返回码大于等于400的百分比,假如优酷总共有4行,大于等于400的返回码有两行,那占比就为50%
sunsky
2020/08/20
3.6K0
Linux三剑客之grep,awk,sed命令必知必会
Grep是用于快速搜索匹配模式的简单工具,但是awk更像是一种编程语言,用于处理文件并根据输入值生成输出。
Vincent-yuan
2021/12/20
9.5K0
Linux三剑客之grep,awk,sed命令必知必会
Linux 三剑客grep sed 与 awk
grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来(匹配到的标红)。
PHP开发工程师
2022/08/12
9150
awk(报告生成器),grep(文本过滤器),sed(流编辑器)使用入门
三剑客 linux下的文本三剑客 grep egrep,grep,fgrep 文本查找的需要 grep:根据模式搜索文本,并将符合模式的文本行显示出来。 pattern:文本符和正则表达式的元字符组合而成的匹配条件 grep [option] "pattern" file grep root /etc/passwd -i:忽略大小写 --color:匹配的字符高亮显示 alias alias grep='grep --color' -v:反向查找 -o:只显示被模式匹配的字符串(不显示行
若与
2018/04/25
1.4K0
awk(报告生成器),grep(文本过滤器),sed(流编辑器)使用入门
Linux下find、awk、sed、grep命令的例子
Global Regular Expression Print(全局正则表达式打印)
wuweixiang
2019/04/09
1.9K0
【Linux】三剑客 grep、awk、sed 常见用法
grep、awk、sed 都是 Linux 命令行工具,通常用于处理文本数据,俗称“Linux 三剑客“。
行者Sun
2024/09/02
8450
【Linux】三剑客 grep、awk、sed 常见用法
【Linux系列】三剑客awk,sed,grep
grep(global regular expression print,全局正则表达式输出)是一个搜索工具。
用户9913368
2022/08/13
1.2K0
Linux awk 命令
AWK是一种处理文本文件的语言,是一个强大的文本分析工具。之所以叫AWK是因为其取了三位创始人Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。
狼啸风云
2019/11/03
4.3K0
常用 linux 命令集锦
文章涉及到vim\grep\cat\more\less\echo\sed\awk的入门用法。
一个会写诗的程序员
2022/01/07
4.6K0
Linux下文本处理“三剑客”
grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹配行,grep和sed的区别在于,grep是以行为单位,进行字符串的对比,sed则可以进行删除、替换等更多的功能
网络安全自修室
2020/09/15
1.1K0
相关推荐
从零开始的异世界生信学习 linux部分 linux 基础---学习笔记-3 Linux三剑客 grep,sed,awk
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档