生物信息学Linux

Shell笔记之常用工具

2020-04-14  本文已影响0人  秋慕云

1.cut

在文件中负责剪切数据用。cut命令从文件中的每一行剪切字节、字符和字段并将这些字节、字符和字段输出

基本用法:
cut [选项参数] filename

说明:默认分隔符是制表符

选项参数说明:
-f 列号,提取第几列
-d分隔符,按照指定分隔符分隔列

例子:

带【-】结果:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
不带【-】结果:
/usr/local/bin

2.sed

一种流编辑器,一次处理一行内容,处理时,把当前处理行的内容存储在临时缓冲区,即,模式空间,接着用sed命令处理缓冲区中的内容,处理完成后把缓冲区的内容推送到屏幕。接着处理下一行数据,以此往复,直到文件末尾。文件内容不会改变。

基本用法:
sed[选项参数] ‘command’ filename

选项参数:
-e : 直接在指令列模式上进行sed的动作编辑

命令功能描述:
a: 新增,a的后面可以接字符串,在下一行出现
d: 删除
s: 查找并替换

例子:

sed "2a mei nv" sed.txt // 将mei nv插入到sed.txt的第二行下面,只是打印上会加入一行mei nv,但是原来的set.txt通过vim命令查看的话并没有新增一行记录,还是之前的记录

sed "/wo/d" sed.txt //删除所有wo的记录,同样,只是会在打印上删除原来的wo,并不会真正的修改原来的文件

sed "s/wo/ni/g" set.txt //查找所有的wo,将wo替换成ni。g代表全局的意思,如果不加g,则代表只替换第一个wo.同样不会修改原文件sed.txt中的内容

sed -e "2d" -e "s/wo/ni/g" set.txt //删除sed.txt文件中的第二行,并将wo替换为ni

3.awk

一个强大的文本分析工具,把文件逐行读入,以空格为默认分隔符将每行进行切片,切开的部分再进行处理

基本用法:
awk[选项参数] 'pattern1 {action1} pattern2{action2} ……' filename

说明:
pattern: 表示AWK在数据中查找的内容,就是匹配模式
action: 对找到的内容进行的一系列命令

选项参数:
-F:指定输入文件分隔符
-v:赋值一个用户定义变量

举例:
数据: root:x:0:0:root:/root:/bin/bash
文件: awk.txt

要求1: 找出awk文件中以root开头的所有行,并输出第七列
命令1: awk -F : '/^root/ {print $7}' awk.txt

要求2:找出awk文件中以root开头的所有行,并输出第一列和第七列,中间以逗号分隔
命令2: awk -F : '/^root/ {print 1","7}' awk.txt

要求3: 查处awk文件中所有空行所在的行号
命令3: awk '/^$/ {print NR}' awk.txt

要求4:有如下格式的文件:
zhangsan 50
lisi 60
wangwu 40
求出第二列的和并输出

命令4:cat interview.txt | awk -F " " '{sum += $2} END{print sum}'

4.sort

将文件进行排序

基本语法:
sort(选项)(参数)

选项:
-n : 按照数值的大小进行排序
-r : 以相反的顺序来进行排序
-t : 设置排序时所用的分隔符
-k : 指定需要排序的列

举例:
有如下格式数据:
bb:40:5.4
bd:20:4.2
xz:50:2.3
cls:10:3.5
ss:30:1.6

要求:
按照“:”分隔,并按照第二列进行倒排
命令: sort -t : -nrk 2 sort.sh

上一篇 下一篇

猜你喜欢

热点阅读