当前位置: 首页 > news >正文

Shell编程基础(十)读取多行文本到数组 写入多行文本到文件

读取多行文本到数组 & 写入多行文本到文件

    • 读取多行文本到数组
    • 写入多行文本到文件

读取多行文本到数组

创建一个文本文件,内容如下

1 zhangsan 男 10
2 liis  女 12
3 wangwu 男 17

读取这个文件中所有人的信息

#!/bin/bash
while read u
do
echo $u
done < ./test.txt

上述shell,执行顺序:

  1. 读取文本内容给到 while 循环
  2. while循环将每一行数据交给 read
  3. 由 read 将每一行的数据 给到 变量 u
  4. 最终实现遍历

按性别统计人数

#!/bin/bash
declare -A count_by_sex
while read u
do
sex=`echo $u | awk '{print $3}'`
# 第一种. 分步定义统计变量
#count=`echo $[${count_by_sex[$sex]}+1]`
#count_by_sex[$sex]=`echo $count`# 第二种. 直接使用数组自增
#let count_by_sex[$sex]++# 第三种. 将第一种方法融合成一条
count_by_sex[$sex]=`echo $[${count_by_sex[$sex]}+1]`
done < ./test.txtfor i in ${!count_by_sex[@]}
do
echo $i : ${count_by_sex[$i]}
done

写入多行文本到文件

#!/bin/bash
echo "1
2
3
4" > echo_lines.txtcat <<-FFF > cat_lines.txt
1
2
3
4
FFF

以上两种都能将指定格式的数据写入文本。

需要注意的是
echo 方式引号如果没和数据在一行,会有一个空行

cat 方式说明
<< 表示将FFF 中定义的内容收集到 cat 中
FFF 定义多行文本结束符,通常这个标识符使用 EOF(end of file)并非只能EOF
>/>> cat_lines.txt 将cat 收集到的文本以覆盖/追加的方式重定向到文件 cat_lines.txt 中

相关文章:

Shell编程基础(十)读取多行文本到数组 写入多行文本到文件

读取多行文本到数组 & 写入多行文本到文件 读取多行文本到数组写入多行文本到文件 读取多行文本到数组 创建一个文本文件&#xff0c;内容如下 1 zhangsan 男 10 2 liis 女 12 3 wangwu 男 17读取这个文件中所有人的信息 #!/bin/bash while read u do echo $u done <…...

MyBatis学习笔记2

CRUD 1.namespace namespace中的包名要和mapper接口的包名一致&#xff01; 2.select 选择查询语句 id&#xff1a;就是对应的namespace中的方法名&#xff1b; resultType:Sql语句执行的返回值&#xff01; parameterType&#xff1a;参数类型 增删改必须提交事务&…...

spring总结

目录 什么是Spring? Spring的优缺点&#xff1f; 优点&#xff1a; 缺点&#xff1a; Spring IOC的理解 Spring AOP的理解 事务的边界为什么放在service层&#xff1f; Spring Bean的生命周期 什么是单例池&#xff1f;作用是什么&#xff1f; 单例Bean的优势 Bean…...

记录--说一说css的font-size: 0

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 平常我们说的font-size&#xff1a;0&#xff1b;就是设置字体大小为0对吧&#xff0c;但是它的用处不仅仅如此哦&#xff0c;它还可以消除子行内元素间额外多余的空白&#xff01; 问题描述&#xff…...

Matlab实现支持向量机算法(附上多个完整仿真源码)

支持向量机是一种常见的机器学习算法&#xff0c;它可以用于分类和回归问题。在Matlab中使用支持向量机&#xff0c;可以方便地构建和训练模型&#xff0c;并进行预测和评估。本文将介绍Matlab支持向量机的基本原理以及一个简单的分类案例。 文章目录 1. 支持向量机的基本原理2…...

AIGC大模型ChatGLM2-6B:国产版chatgpt本地部署及体验

1 ChatGLM2-6B介绍 ChatGLM是清华技术成果转化的公司智谱AI研发的支持中英双语的对话机器人。ChatGLM基于GLM130B千亿基础模型训练&#xff0c;它具备多领域知识、代码能力、常识推理及运用能力&#xff1b;支持与用户通过自然语言对话进行交互&#xff0c;处理多种自然语言任务…...

[国产MCU]-BL602开发实例-开发环境搭建

开发环境搭建 文章目录 开发环境搭建1、BL602介绍2、软件准备3、源码编译3.1 编译内置工程3.2 自定义工程、自定义组件添加与编译4、固件下载BL602 是一款Wi-Fi + BLE组合的芯片组,用于低功耗和高性能应用开发。无线子系统包含2.4G无线电,Wi-Fi 802.11b/g/n和BLE 5.0 基带/MA…...

春秋云镜 CVE-2020-26048

春秋云镜 CVE-2020-26048 CuppaCMS 任意文件上传 靶标介绍 CuppaCMS是一套内容管理系统&#xff08;CMS&#xff09;。 CuppaCMS 2019-11-12之前版本存在安全漏洞&#xff0c;攻击者可利用该漏洞在图像扩展内上传恶意文件&#xff0c;通过使用文件管理器提供的重命名函数的自…...

使用Golang实现一套流程可配置,适用于广告、推荐系统的业务性框架——简单应用

在诸如广告、推荐等系统中&#xff0c;我们往往会涉及过滤、召回和排序等过程。随着系统业务变得复杂&#xff0c;代码的耦合和交错会让项目跌入难以维护的深渊。于是模块化设计是复杂系统的必备基础。这篇文章介绍的业务框架脱胎于线上多人协作开发、高并发的竞价广告系统&…...

一个.NET开发的Web版Redis管理工具

今天给大家推荐一款web 版的Redis可视化工具WebRedisManager&#xff0c;即可以作为单机的web 版的Redis可视化工具来使用&#xff0c;也可以挂在服务器上多人管理使用的web 版的Redis可视化工具。 WebRedisManager基于SAEA.Socket通信框架中的SAEA.RedisSocket、SAEA.WebApi两…...

javaAPI(四):jdk8中的日期时间API

新日期时间API出现的背景 jdk8之前时间日期API 如果我们可以跟别人说&#xff1a;“我们在1502653933071见面&#xff0c;别晚了&#xff01;”那么就再简单不过了。但是我们希望时间与昼夜和四季有关&#xff0c;于是事情就变复杂了。jdk 1.0中包含了一个java.util.Date类&am…...

解决在mybatis中出现的org.apache.ibatis.exceptions.PersistenceException~

我在使用mybatis中的注解对数据库中的信息进行操作时&#xff0c;出现了下述错误 我在mapper接口中定义了该方法&#xff0c;并且使用注解绑定了对应的SQL语句 //增加用户信息 Insert("insert into user values(#{id},#{name},#{password})") int addUser(user user…...

Vue + ElementUI 实现可编辑表格及校验

效果 完整代码见文末 实现思路 使用两个表单分别用于实现修改和新增处理。 通过一个editIndex变量判断是否是编辑状态来决定是否展示输入框&#xff0c;当点击指定行的修改后进行设置即可&#xff1a; <el-table-columnv-for"(column, index) in columns":key&qu…...

中介者模式——协调多个对象之间的交互

1、简介 1.1、概述 如果在一个系统中对象之间的联系呈现为网状结构&#xff0c;如下图所示&#xff1a; 对象之间存在大量的多对多联系&#xff0c;将导致系统非常复杂&#xff0c;这些对象既会影响别的对象&#xff0c;也会被别的对象所影响&#xff0c;这些对象称为同事对…...

启动Flink显示初始化状态怎么解决?

启动Flink显示初始化状态怎么解决&#xff1f; Flink On Yarn模式 问题 flnk任务在跑的过程中&#xff0c; 有时候任务停掉了 &#xff0c;不过我有 定时任务&#xff0c;可以把失败的flink任务拉起来&#xff0c;但是因为最新的checkpoint做失败了&#xff0c;导致脚本无法拉…...

VB+SQL采购管理系统设计与实现

摘 要 本系统是基于为轴承企业采购部门开发的系统。课题主要采用自上而下的结构化程序设计方法与面向对象方法相结合的方法,致力于达到标准的现代化物流管理要求。帮助轴承企业采购部门全面实现电子化、自动化、标准化的现代化先进管理模式。 该系统使用Visualbasic.net编程…...

TBB库中实现协程(coroutine)的源码说明

源码请见: https://github.com/oneapi-src/oneTBB/blob/master/src/tbb/co_context.h 在windows系统&#xff0c;TBB(也就是intel 的 oneTBB库)&#xff0c;通过windwos fiber(纤程)来实现协程(coroutine)。 创建一个协程,代码很简洁: inline void create_coroutine(corouti…...

【CSS弹性盒模型 display:flex;常用参数及常见的布局】

CSS弹性盒模型 display:flex;常用参数flex-directionjustify-contentalign-itemsflex-wrapflex-flowalign-contentorderflex-growflex-shrinkflex-basis 常见的布局1. 水平居中2. 垂直居中3. 水平垂直居中4. 等分布局5. 响应式布局6. 网格布局 常见的布局封装 display:flex;常用…...

golang函数传参——值传递理解

做了五年的go开发&#xff0c;却并没有什么成长&#xff0c;都停留在了业务层面了。一直以为golang中函数传参&#xff0c;如果传的是引用类型&#xff0c;则是以引用传递&#xff0c;造成这样的误解&#xff0c;实在也不能怪我。我们来看一个例子&#xff0c;众所周知&#xf…...

Liunx环境下git的详细使用(gitee版)

Liunx环境下git的详细使用&#xff08;gitee版&#xff09; 1.git是什么2.git操作2.1在gitee创建一个仓库2.2.gitignore2.3.git 3.git三板斧3.1add3.2 commit3.3push 4.git其他命令4.1查看当前仓库状态4.2查看提交日志4.3修改git里面文件名称4.4删除文件4.5修改远端仓库内容 1.…...

Janus-Pro-7B教育评估:学生作业图片批改+个性化反馈文字生成

Janus-Pro-7B教育评估&#xff1a;学生作业图片批改个性化反馈文字生成 1. 引言&#xff1a;当AI老师遇上学生作业 想象一下这个场景&#xff1a;一位老师面对堆积如山的作业本&#xff0c;需要逐一批改、写评语、分析错误&#xff0c;这往往需要耗费数小时甚至更长时间。现在…...

intv_ai_mk11惊艳效果展示:输入‘设计一个碳中和主题PPT’→大纲+每页文案+视觉建议

intv_ai_mk11惊艳效果展示&#xff1a;输入设计一个碳中和主题PPT→大纲每页文案视觉建议 1. 效果预览&#xff1a;从简单指令到完整PPT方案 当我向intv_ai_mk11输入"设计一个碳中和主题PPT"这个简单指令时&#xff0c;它在30秒内就生成了一个专业级的完整方案。这…...

001、性能优化基础:慢SQL诊断与执行计划分析

昨天凌晨又被告警短信吵醒了&#xff0c;线上某核心接口的P99响应时间飙到了3秒。登录服务器一看&#xff0c;MySQL的CPU已经跑满&#xff0c;processlist里堆了二十几个相同的查询——又是慢SQL惹的祸。这种场景咱们做后端开发的太熟悉了&#xff0c;今天就来聊聊怎么系统性地…...

如何用3分钟搭建深度学习的漫画翻译流水线?BallonsTranslator深度解析

如何用3分钟搭建深度学习的漫画翻译流水线&#xff1f;BallonsTranslator深度解析 【免费下载链接】BallonsTranslator 深度学习辅助漫画翻译工具, 支持一键机翻和简单的图像/文本编辑 | Yet another computer-aided comic/manga translation tool powered by deeplearning 项…...

【飞机】倾转旋翼飞机齿轮箱建模与Matlab仿真(含非线性阻尼和立方摩擦效应)

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和…...

从2D到3D草图进阶:Solidworks曲面建模效率提升全攻略(2023新版)

从2D到3D草图进阶&#xff1a;Solidworks曲面建模效率提升全攻略&#xff08;2023新版&#xff09; 在工业设计领域&#xff0c;Solidworks始终保持着强大的竞争力&#xff0c;尤其当设计师从平面思维跃升至三维空间时&#xff0c;3D草图功能便成为突破创意边界的利器。不同于传…...

技术解析 | 【ECCV2022】MuLUT:多级查找表协同优化在图像超分中的高效实践

1. MuLUT技术背景与核心价值 图像超分辨率&#xff08;Super-Resolution&#xff09;技术一直是计算机视觉领域的热门研究方向&#xff0c;简单来说就是让低分辨率图像变清晰的过程。传统基于卷积神经网络&#xff08;CNN&#xff09;的方法虽然效果不错&#xff0c;但计算量大…...

3个核心技巧:PS手柄无缝适配PC完全指南

3个核心技巧&#xff1a;PS手柄无缝适配PC完全指南 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 对于拥有PS4/PS5手柄的玩家而言&#xff0c;在PC上实现完美适配一直是提升游戏体验的关…...

AI编程助手DeepSeek Coder:代码生成效率提升指南

AI编程助手DeepSeek Coder&#xff1a;代码生成效率提升指南 【免费下载链接】DeepSeek-Coder DeepSeek Coder: Let the Code Write Itself 项目地址: https://gitcode.com/GitHub_Trending/de/DeepSeek-Coder 在软件开发领域&#xff0c;开发者每天面临着重复编码、多语…...

抖音批量下载工具:高效解决方案与实战指南

抖音批量下载工具&#xff1a;高效解决方案与实战指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批量…...