SHELL 文件内容的行数打印、统计,空行处理,每行字段的逆序输出

2023-11-19

file.txt

用来实验的文本文件

how they are implemented and applied in computer
that is your bag
is this your bag?
to the degree or extent indicated.
there was a court case resulting from this incident
welcome to nowcoder
welcome nowcoder
welcome to nowcoder
nowcoder

how they are implemented and applied in computer
that is your bag

is this your bag?
to the degree or extent indicated.

there was a court case resulting from this incident
welcome to nowcoder

welcome nowcoder

1
welcome to nowcoder

nowcoder

test.sh

测试程序,通过实验文本完成七个需求

#!/bin/bash

echo "requir-1: 统计文件中的行数"
cat file.txt | wc -l   # wc -l 会打印文件中文本的行数,基数从0开始起。
echo

echo "requir-2: 打印前8行"
head -n 8 file.txt # equal to: head -n +8 file.txt 
echo externalInfo
head -n -8 file.txt # 从最后的非空行开始数,打印倒数第八行~开头的所有行 
echo

echo "requir-3: 打印后8行"
tail -n 8 file.txt # equal to: tail -n -8 file.txt
echo externalInfo
tail -n +8 file.txt # 从第八行开始,一直打印到末尾行
echo

echo "requir-4: 打印第11行"
sed -n '5p' file.txt
echo external
awk 'NR==5' file.txt
echo externalCombine
head -n 5 file.txt | tail 1
echo

echo "requir-5: 打印空行的行号"
awk '/^$/{print NR}' file.txt  
# /xxx/是转义符的意思?或者是指要搜索的内容
# 搜索包含^$的行,打印出所在的行号。个人猜测:^$是以$为开头的行,$可能代表换行符,以换行符为开头的行,就是空行。
echo

echo "requir-6: 去掉空行"
sed -i '/^$/d' file.txt # /xx/d: 删除指定的内容,d是删除;^$是空行,-i代表对文件做出修改
echo

echo "requir-7:将文本中的每一行,以字段顺序进行逆转输出"
awk -F " " '    # 设置分隔符,分割为空格" "
{
s="";           # awk会逐次将文本的每一行内容作为输入,s为每一行的起始数据
for(i=NF;i>=1;i--){  # NF表示awk的字段个数,$NF则表示字段最后一个列
   if(i==NF) s=$i;	 # 末尾字段作为起始 $i 就是各个字段的内容	
   else s=s" "$i;	 # 之后逐个添加字段
}
print s				# 这里仅仅将字段打印出来,有需要的话可以直接写入到文件中
}
' file.txt
echo
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SHELL 文件内容的行数打印、统计,空行处理,每行字段的逆序输出 的相关文章

  • php56 - CentOS - Remi 仓库

    我刚刚在测试盒上安装了 php 5 6 正常的 cli php 解释器似乎不存在 gt php v bash php command not found gt php56 v PHP 5 6 13 cli built Sep 3 2015
  • 路由是否会影响具有绑定源地址的套接字?

    假设我有两个网络接口 eth0有地址10 0 0 1 eth1有地址192 168 0 1 Using route or ip route add我已将其设置为路由 所有地址至eth0 1 2 3 4只为了eth1 所以数据包到1 2 3
  • 在bash中用其他文件过滤一个文件

    我有一个带有数字的文件 例如 cat file 31038467 32048169 33058564 34088662 35093964 31018168 31138061 31208369 31538163 31798862 和其他例如
  • Linux 阻塞与非阻塞串行读取

    I have 这段代码 https stackoverflow com questions 6947413 how to open read and write from serial port in c用于在Linux中从串行读取 但我不
  • 期待、互动,然后再次期待

    有几篇关于相同内容的帖子 但我仍然无法使我的期望脚本正常工作 我的目的是自动化一切 但保留用户输入的密码 所以脚本有 3 个部分 自动登录 给予用户交互以输入密码 将控制权交还给 Expect 脚本以继续工作 所以我有一个将生成的脚本 其中
  • Linux Shellcode“你好,世界!”

    我有以下可用的 NASM 代码 global start section text start mov eax 0x4 mov ebx 0x1 mov ecx message mov edx 0xF int 0x80 mov eax 0x1
  • 如果目录不存在,有没有办法让 mv 创建要移动到的目录?

    因此 如果我在主目录中并且想将 foo c 移动到 bar baz foo c 但这些目录不存在 是否有某种方法可以自动创建这些目录 以便你只需要输入 mv foo c bar baz 一切都会顺利吗 似乎您可以将 mv 别名为一个简单的
  • 在 bash 中快速引用 stdout(即上一个命令的输出)?

    有没有办法快速 例如通过键盘快捷键等 引用写入到 stdout 的上一个命令的输出 例如 如果我这样做 which rails 它回来了 usr local bin rails然后我想在 textmate 中打开该文件 我可以像这样重新输入
  • C# - OPC-UA 服务器应用程序尚未在 Linux 计算机中创建 PKI 证书

    当我跑步时OPC UA serverWindows 机器中的 C 应用程序 然后 OPC UA 服务器已创建证书路径C ProgramData OPC Foundation pki own 并在此路径中生成一些证书 但是当我在中安装 OPC
  • 在 Bash 中拆分 csv 文件中的列

    我想从 csv 文件的第二列中提取值并将提取的值存储在新列中 我的数据集示例 page name post id page id A 86680728811 272953252761568 86680728811 A 86680728811
  • 如何编写 bash 函数来包装另一个命令?

    我正在尝试编写一个函数包装器mysql command If my cnf存在于 pwd 中 我想自动附加 defaults file my cnf到命令 这就是我正在尝试的 function mysql if e my cnf then
  • 如何获取 bash 中从 Ping 接收到的数据包的百分比?

    当 ping 主机时 我希望输出仅显示收到的数据包 已发送 5 个 的百分比 我想我需要使用grep不知怎的 但我不知道如何 我是 bash 编程的新手 这是我所在的地方 ping c 5 q host grep grep 中应该包含什么
  • 编写 shell 脚本以 am 或 pm 表示法显示时间

    我正在尝试编写一个 shell 脚本 以上午或下午的形式显示时间 而不是使用 date 命令显示时间 我不知道我应该如何去做这件事 我想对于初学者来说 如何从日期命令中提取时间来操作它 我如何提取小时数来操纵它 您正在寻找的是 man st
  • rsync :递归同步所有文件,同时忽略目录结构

    我正在尝试创建一个 bash 脚本 用于将音乐从桌面同步到移动设备 桌面是源 有没有办法让rsync递归同步文件但忽略目录结构 如果从桌面删除了文件 我希望它也在设备上删除 我的桌面上的目录结构是这样的 Artist1 Artist1 ar
  • 如何在 Linux 中显示进程状态(阻塞、非阻塞)

    有没有办法查询 Linux 进程表中进程的状态 以便能够演示执行查询时进程是正在运行还是被阻止 我的目标是从进程或程序的 外部 执行此操作 因为我希望从操作系统进程的角度来理解这一点 但欢迎任何想法 这是Python代码阻塞的过程 impo
  • 如何更改 Kubernetes 中的文件系统观察程序限制 (fs.inotify.max_user_watches)

    我在用着pm2 https github com Unitech pm2查看保存我的应用程序服务器的 NodeJS 程序源代码的目录 该程序在 Kubernetes 集群中运行 但是 我收到此错误 ENOSPC System limit f
  • 如何按文件大小对查找结果进行排序

    如何按文件大小对 find 命令的结果进行排序 我试图对这个 find 命令的结果进行排序 find src type f print0 我不需要目录的大小 我需要仅按大小排序的文件相对路径 这是如何做的using find command
  • 选择多个模式的 awk 代码

    这是我的输入文件 比如modified txt r4544 n479826 2012 08 28 07 12 33 0400 Tue 28 Aug 2012 1 line Changed paths M branches 8 6 0 con
  • Linux shell 标题大小写

    我正在编写一个 shell 脚本并有一个如下所示的变量 something that is hyphenated 我需要在脚本中的各个点使用它 如下所示 something that is hyphenated somethingthati
  • '>&0' 有用途吗(重定向到标准输入)?

    在 bash 中你可以这样做 echo test gt 1 重定向到标准输出 尽管它已经到那里了 echo test gt 2 重定向到标准错误 echo test gt 0 重定向到标准输入 当我做最后一个时 我的终端仍然打印test就像

随机推荐

  • C++学习之list的实现

    在了解学习list实现之前我们首先了解一下关于迭代器的分类 按功能分类 正向迭代器 反向迭代器 const正向迭代器 const反向迭代器 按性质分类 单向迭代器 只能 例如单链表 双向迭代器 可 也可 例如双链表 map和set 随机迭代
  • Unity3D 监控面板显示数据(Inspector)

    using System Collections using System Collections Generic using UnityEngine using UnityEngine Serialization AddComponent
  • 机器学习十大算法之四:SVM(支持向量机)

    SVM 支持向量机 支持向量机 Support Vector Machine 是一种十分常见的分类器 曾经火爆十余年 分类能力强于NN 整体实力比肩LR与RF 核心思路是通过构造分割面将数据进行分离 寻找到一个超平面使样本分成两类 并且间隔
  • IC卡和ID卡

    定义 最常用的感应卡分为ID卡和IC卡两种 IC卡全称集成电路卡 Integrated Circuit Card 又称智能卡 Smart Card 可读写 容量大 有加密功能 数据记录可靠 使用更方便 如一卡通系统 消费系统等 ID卡全称身
  • java.sql.SQLException: Statement.executeQuery() cannot issue statements that do not produce result

    java sql SQLException Statement executeQuery cannot issue statements that do not produce result sets 解决 看看自己的java代码里的 sq
  • Linux内核内存检测工具KASAN

    KASAN k z n KASAN 是 Kernel Address Sanitizer 的缩写 它是一个动态检测内存错误的工具 主要功能是检查内存越界访问和使用已释放的内存等问题 KASAN 集成在 Linux 内核中 随 Linux 内
  • 项目管理 附下载地址

    本书对现代项目管理的基本管理过程 知识模块 工具和方法等进行了全面的介绍 全书共有十二章 每部分都力求深入浅出 站在项目经理的角度 考虑其责任大于权力的现实 并结合时代特征 学习项目管理的软技能和硬技能 通过实际案例 高效的工具和模板 使读
  • 作为字典数据获取枚举值

    RequestMapping value getAmmeterType method RequestMethod GET ResponseBody ApiOperation notes 获取电表类型 value 获取电表类型 public
  • Python程序异常处理

    一 什么是异常 异常就是程序运行时发生错误的信号 在程序由于某些原因出现错误的时候 若程序没有处理它 则会抛出异常 程序也的运行也会随之终止 程序异常带来的问题 1 程序终止 无法运行下去 2 如果程序是面向客户 那么会使客户的体验感很差
  • 【从小项目学图片处理】#1 答题卡识别

    说明 项目皆参考于网上 代码也有大部分参考原文 仅用于学习和练习图像处理操作 项目原文 Bubble sheet multiple choice scanner and test grader using OMR Python and Op
  • 微信小程序中text中如何换行_在手机中使用微信小程序

    微信小程序 简称小程序 英文名Mini Program 是一种不需要安装就可以使用的程序 内嵌在微信当中 小程序依赖于微信环境 但又不止于微信 微信提供一个入口 然后通过独立窗口 进程来运行小程序 工具 原料 微信 方法 步骤1 小程序入口
  • 再见 BeanUtils 欢迎 mapstruct

    前言 为了更好的进行开发和维护 我们都会对程序进行分层设计 例如常见的三层 四层 每层各司其职 相互配合 也随着分层 出现了VO BO PO DTO 每层都会处理自己的数据对象 然后向上传递 这就避免不了经常要将一个对象的属性拷贝给另一个对
  • 使用SQL进行递归查询

    使用SQL进行递归查询 在工作当中会经常用到递归 比如菜单的展示 一种方法就是从 数据库中取出所有的数据 然后在程序中循环获取符合条件的数据 另外一种方法就是使用SQL直接读取符合条件的数据 对于递归查询 T SQL和PL SQL进行了不同
  • Ubuntu 18.04 + DSO-slam配置、运行数据集、摄像头实时运行

    一 写在前面 前段时间老师布置了课程任务 让全班同学分组配置和运行slam 我们组选择的是DSO slam 由于选择的时候并没有对slam并没有什么了解 只有老师上课时一些科普性质的讲解 所以相当于是从0开始 这一周一直用空闲时间配置环境
  • 【GPLT】【2022天梯赛真题题解】

    L1 1 今天我要赢 5分 题目描述 2018 年我们曾经出过一题 是输出 2018 我们要赢 今年是 2022 年 你要输出的句子变成了 我要赢 就在今天 然后以比赛当天的日期落款 输入格式 本题没有输入 输出格式 输出分 2 行 在第一
  • RocketMQ消费者可以手动消费但无法主动消费问题,或生成者发送超时

    1 大多数是配置问题 修改rocketmq文件夹broker conf 2 配置与集群IP或本地IPV4一样 重启 在RocketMQ独享实例中支持IPv4和IPv6双栈 主要是通过在网络层面上同时支持IPv4和IPv6协议栈来实现的 Ro
  • java之二进制与数据类型(二)

    一 各数据类型的最大值和最小值 整数 以byte为例 我们知道 byte共有8个bit位 最大值是0111111 最小值是10000000 用十进制来表示就是 128 127 即 2 7 2 7 依照上面的推理方式可知 总结下表 数据类型
  • Redis学习总结

    Redis Redis 是完全开源免费的 遵守BSD协议 是一个高性能的key value数据库 Redis支持数据的持久化 可以将内存中的数据保存在磁盘中 重启的时候可以再次加载进行使用 Redis的优势 性能极高 Redis读的速度可达
  • 格雷码介绍与应用

    注 学习 交流就在博主的个人weixin公众号 FPGA动力联盟 留言或直接 博主weixin fpga start 私信 学过晶体管知识的朋友们都知道 数据位跳变就相当于硬件电路中的晶体管翻转 许多位同时跳变就相当于多个晶体管同时翻转 会
  • SHELL 文件内容的行数打印、统计,空行处理,每行字段的逆序输出

    file txt 用来实验的文本文件 how they are implemented and applied in computer that is your bag is this your bag to the degree or e