首页 > 系统相关 >Linux的三剑客

Linux的三剑客

时间:2024-12-26 20:58:01浏览次数:7  
标签:输出 sed awk Linux print 内容 txt 三剑客

grep 只是做一个筛选并输出,不能改变文件的原内容

命令格式: grep [ 参数 ] [ 关键字 ] < 文件名 > 注意: 可以通过 grep --help 查看 grep 的帮助信息 参数详解: -c 只输出匹配行的计数 -n 显示匹配行及行号 -v 显示不包含匹配文本的所有行 ( 反选 ) 例子: grep -c "hello" grep.txt // 显示出现 “hello” 的行数 grep -n "hello" grep.txt // 显示出现 “hello” 的行的内容,并标上行号 grep -nv "hello" grep.txt // 显示不包含 “hello” 的行的内容,并标上行号
sed
sed 行文件编辑工具。因为它编辑文件是以行为单位的。 命令格式: sed [ 参数 ] '< 匹配条件 > [ 动作 ]' [ 文件名 ] 注意: 可以通过 sed --help 查看帮助信息 参数详解: 参数为空 表示 sed 的操作效果,实际上不对文件进行编辑 -n 取消静默输出 -i 表示对文件进行编辑 匹配条件: 匹配条件分为两种:数字行号或者关键字匹配 关键字匹配格式: ‘/ 关键字 /’ 动作详解: a 在匹配到的内容下一行增加内容 i 在匹配到的内容当前行增加内容 d 删除匹配到的内容 s 替换匹配到的内容 p 查看指定内容 举例: p 查看指定内容 sed '3p' sed.txt // 查看第三行的内容,没有取消静默输出 sed -n '3p' sed.txt // 查看第三行的内容 awk sed -n '1,3p' sed.txt // 查看 1 到 3 行的内容 sed -n '1p;3p' sed.txt// 查看第一行和第三行的内容 s 替换匹配到的内容: sed -i '1s/sed/SED/' sed.txt // 替换第一行第一个 sed 为 SED sed -i '1s/sed/SED/g' sed.txt // 替换第一行所有的 sed 为 SED sed -i '2s/sed/SED/2' sed.txt // 替换第二行第二个的 sed 为 SED sed -i 's/sed/SED/g' sed.txt // 替换所有的 sed 为 SED sed -i 's/SED/sed/2' sed.txt // 替换所有行的第二个 SED 为 sed a 在匹配到的内容下一行增加内容 i 在匹配到的内容当前行增加内容 sed -i '3a\add-1' sed.txt // 在第三行后面添加 add-1 sed -i '3i\insert-1' sed.txt // 在第三行前面添加 insert-1 sed -i '1,3a\add-2' sed.txt // 在第 1-3 行后面添加 add-2 sed -i '1,3i\insert-2' sed.txt // 在第 1-3 行前面添加 insert-1 d 删除匹配到的内容: sed -i '1d' sed.txt // 删除第一行的内容 sed -i '2,4d' sed.txt // 删除第二行到第四行的内容 sed -i '3d;5d' sed.txt // 删除第三行和第五行的内容
awk
awk 是一个功能非常强大的文档编辑工具,它不仅能以行为单位还能以列为单位处理文件。 命令格式 awk [ 参数 ] '[ 动作 ]' [ 文件名 ] 常见参数: -F 指定列的分隔符 -f 调用脚本 -v 定义变量 常见动作: print 显示内容 $0 显示当前行所有内容 $n 显示当前行的第 n 列内容 动作组成 BEGIN{ 命令 } 初始代码块,主要和变量相关 /pattern/{ 命令 } 匹配、执行代码块 END{ 命令 } 结束代码块,主要和信息输出相关 内置变量 FILENAME 当前输入文件的文件名,该变量是只读的 NR 指定显示行的行号 NF 输出最后一列的内容 OFS 输出格式的列分隔符,缺省是空格 FS 输入文件的列分融符,缺省是连续的空格和 Tab
awk '/Hello/' awk.txt // 过滤包含 Hello 的内容 Hello awk7 awk8 awk9 [root@localhost ~]# awk '{print $1}' // 打印第 1 列的内容 awk.txt hello hello Hello [root@os39 ~]# awk 'NR==2{print $2}' awk.txt // 输出第二行第二列的内容 awk4 [root@os39 ~]# awk 'NR==2{print NR,$2}' awk.txt // 输出第二行第二列的内容,并输出行号 2 awk4 [root@os39 ~]# awk 'NR==3{print $2,$4}' awk.txt // 输出第三行第二列和第四列的内容 awk7 awk9 [root@os39 ~]# awk '{print $1}' ll.txt // 输出第一列,默认分割符为空格 1,2,3,4,5,6,7 [root@os39 ~]# awk -F ',' '{print $1}' ll.txt // 输出第一列,指定分割符为逗号 1 awk 'BEGIN{OFS=":"} {print NR,$0}' awk.txt // 设置显示分隔符为 ‘:’ ,显示内容 1:hello awk1 awk2 awk3 2:hello awk4 awk5 awk6 3:Hello awk7 awk8 awk9 awk -F ',' 'OFS=","{print $2,$4}' ll.txt // 输出第二列和第四列,指定分割符为逗号,输出分 隔符为逗号 2,4,5 [root@localhost ~]# ll | awk '{if ($5>=1910) print "\n" "filename:" $9 "\n" "lenth:" $5 "B" "\n"}' filename:initial-setup-ks.cfg lenth:1949B # 输出当前目录下文件大小大于 1910 的文件名和文件大小 [root@localhost ~]# ll | awk '{if ($5>=1910 && /^-/) print "\n" "filename:" $9 "\n" "lenth:" $5 "B" "\n"}' filename:initial-setup-ks.cfg lenth:1949B # 输出当前目录下普通文件大小大于 1910 的文件名和文件大小 [root@localhost ~]# awk -F ' ' '{for(i=1;i<=NF;i++) print $i}' awk.txt # 按顺序输出所有内容 [root@localhost ~]# awk -F ' ' '{for(i=NF;i>=1;i--) print $i}' awk.txt # 按倒序输出所有内容

标签:输出,sed,awk,Linux,print,内容,txt,三剑客
From: https://blog.csdn.net/m0_73932844/article/details/144752928

相关文章

  • 2024最新工具分享 | 24年最新AWVS/Acunetix Premium V24.8高级版漏洞扫描器(最新版)Wi
    前言AcunetixPremium是一种Web应用程序安全解决方案,用于管理多个网站、Web应用程序和API的安全。集成功能允许您自动化DevOps和问题管理基础架构。AcunetixPremium:全面的Web应用程序安全解决方案Web应用程序对于企业和组织与客户、合作伙伴和员工的联系至关......
  • linux系统下docker安装mysql
    记录一下步骤:1、拉取镜像:dockerpullvijayan/mysql5.62、创建mysql挂载用数据卷cd/data/software/mysqlmkdirconfmkdirlogmkdirdata3、创建mysql配置文件cd/data/software/mysql/conf vimmy.conf[client]#端口号port=3306[mysql]no-beepdefault-character......
  • Linux查看、修改当前主机的主机名
    在Linux系统中,查看和修改主机名是一个常见的管理任务。下面是详细的步骤说明:1.查看当前主机名你可以使用以下几种命令来查看当前的主机名:hostname命令:hostname这将显示当前的主机名。hostnamectl命令:hostnamectlstatus或者简略地:hostnamectl这将显示更多的系统信息,包括......
  • RISC-V篇-VSCode+qemu+gdb可视化调试Linux Kernel
    https://zhuanlan.zhihu.com/p/4185359719 本文发布于微信公众号:Linux底层小工,欢迎关注,获取更多原创技术文章!“VSCode+qemu+gdb调试OpenSBI确实很爽,那怎能少了调试kernel呢~~”01VScode调试MMU开启之前的kernel有了调试OpenSBI的基础,再调试kernel,那设置相当简单了,如果你还......
  • Linux之线程(一)
    ......
  • 命令行之巅:Linux Shell编程的至高艺术(上)
    文章一览前言一、shell概述1.1shell的特点和类型1.1.1**shell的特点:**1.1.2常用shell类型1.2shell脚本的建立和执行1.2.1建立shell脚本1.2.2执行shell脚本的方式1.2.3shell程序实例二、shell变量与算数运算2.1简单shell变量2.1.1简单变量定义和赋值2.1.2引......
  • 命令行之巅:Linux Shell编程的至高艺术(下)
    文章一览前言一、程序控制结构1.1if语句1.2条件测试**测试语句应用:**1.3while语句例:斐波那契数列得前n项和1.4until语句1.5for语句1.5.1值表方式1.5.2算术表达式方式例:打印图案1.6case语句1.7break、continue和exit命令二、shell函数和内置命令2.1shel......
  • Linux驱动的调试
    调试Linux驱动喜欢我O2优化吗......
  • Linux中vim常用命令和技巧(超详细保姆级教程)(三)
    最近被要求改用vim写代码,感觉自己的一些操作非常笨拙,完全浪费了vim的强大功能,下定决心从头学习vim的各种操作和技巧,顺便把学到的内容整理出来,内容持续更新中,包括各种基础操作和一些提高生产力的小技巧,适合和我一样刚接触vim或者想要系统练习vim操作的友友们,一起成为vim高手!(一)V......
  • LVS(Linux Virtual Server)备忘录
    (241226)基础内容LVS是LinuxVirtualServer,Linux虚拟服务器;是一个虚拟的服务器集群【多台机器LBIP】。LVS集群分为三层结构:负载调度器(loadbalancer):它是整个LVS集群对外的前端机器,负责将client请求发送到一组服务器【多台LBIP】上执行,而client端认为是返回来一个同......