美文网首页生物信息学Linux
Shell笔记之常用工具

Shell笔记之常用工具

作者: 秋慕云 | 来源:发表于2020-04-14 21:54 被阅读0次

1.cut

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

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

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

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

例子:

  • cut -d " " -f 1 cut.txt
    根据空格切割 cut.txt 文件的第一列

  • cut -d " " -f 1,2 cut.txt
    根据空格切割cut.txt文件的第一、二列

  • 切割文件中的某个关键字:
    cat cut.txt | grep "hello" | cut -d " " -f 1
    注意:第一个是cat不是cut,意思是截取cut.txt文件中hello的字段 然后根据空格截取第一列

  • 截取系统PATH变量值,第2个“:”开始后的所有路径
    测试数据:
    /Users/zhangsheng1/Project/Java/apache-maven-3.3.9/bin:/Users/zhangsheng1/Project/Java/jdk1.8.0_192.jdk/Contents/Home/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
    echo $PATH | cut -d : -f 3-
    注意:3之后还有一个【-】,代表第二个“:”号之后所有的路径,如果不带【-】,只剪出第3列的内容

带【-】结果:
/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

相关文章

  • Shell笔记之常用工具

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

  • shell学习笔记

    shell是基于shell解释器的脚本编程语言,也是使用Linux的常用工具,连接着用户和系统内核。 查看操作系统...

  • linux shell脚本攻略笔记

    LINUX SHELL脚本攻略笔记[速查] linux shell脚本攻略笔记

  • Shell十三问 学习笔记

    文本处理 Shell脚本编程 Shell 十三问 学习笔记 shell and Carriage 关系 Shell...

  • Shell脚本

    shell脚本学习笔记 shell命令的组合运用 常用命令组合

  • 从瞎忙到搞定,你需要 GTD

    目录 GTD - Get Things DoneZTD - Zen To Done我的印象笔记GTD系统常用工具参...

  • Shell入门笔记

    本笔记参考 Linux探索之旅 1.什么是Shell 2.Shell种类 3.Shell脚本文件 4.Shell变...

  • Shell 学习笔记

    Shell 学习笔记 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是...

  • 1.1 开始

    《Linux Shell 脚本攻略(第 2 版)》读书笔记 Bash (Bourne Again Shell)是目...

  • SHELL 笔记

    shell笔记 判断语句 运算 选择语句 循环语句 将shell字句执行结果复制给变量 shell简单传参 编号变...

网友评论

    本文标题:Shell笔记之常用工具

    本文链接:https://www.haomeiwen.com/subject/nfgxvhtx.html