【Shell编程练习】把一个文档前五行中包含字母的行删掉,同时删除 6 到 10 行包含的所有字母

发布时间:2024年01月21日

系列文章目录

输出Hello World
通过位置变量创建 Linux 系统账户及密码
监控内存和磁盘容量,小于给定值时报警
猜大小
输入三个数并进行升序排序
编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机状态
编写 shell 脚本,打印 9*9 乘法表
判断用户输入的是 Yes 或 NO



把一个文档前五行中包含字母的行删掉,同时删除 6 到 10 行包含的所有字母

#!/bin/bash
# 文件名为 words.txt
sed -n '1,5p' words.txt | sed '/[a-zA-Z]/d'
sed -n '6,10p' words.txt | sed s'/[a-zA-Z]//g'
sed -n '11,$'p words.txt
#最终结果只是在屏幕上打印结果,如果想直接更改文件,可将输出结果写入临时文件中,再替换2.txt或者使用 -i选项
  • sed -n '1,5p' words.txt | sed '/[a-zA-Z]/d'

    • sed -n '1,5p' words.txt:表示打印第 1 到第 5 行的内容。
    • |:管道操作符,将第一个 sed 命令的输出传递给第二个 sed 命令。
    • sed '/[a-zA-Z]/d':表示删除包含字母的行。
  • sed -n '6,10p' words.txt | sed s'/[a-zA-Z]//g'

    • sed -n '6,10p' words.txt:表示打印第 6 到第 10 行的内容。

    • |:管道操作符,将第一个 sed 命令的输出传递给第二个 sed 命令。

    • sed 's/[a-zA-Z]//g':表示将所有包含字母的字符替换为空字符串。

  • sed -n '11,$'p words.txt

    • -n:表示关闭默认输出,只有经过命令处理的行才会被打印。

    • 11,$p:表示打印第 11 行及之后的所有行。

文章来源:https://blog.csdn.net/m0_60511809/article/details/135646721
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。