位置: 编程技术 - 正文

Shell实现文本去重并操持原有顺序(shell读取文本内容到变量)

编辑:rootadmin

推荐整理分享Shell实现文本去重并操持原有顺序(shell读取文本内容到变量),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:shell文本处理命令,shell文本处理三剑客,shell处理文本,shell文本编辑,shell 写入文本,shell 写入文本,shell文本处理三剑客,shell文本处理三剑客,内容如对您有帮助,希望把文章链接给更多的朋友!

简单来说,这个技巧对应的是如下一种场景

假设有文本如下现在需要对它进行去重处理,这个很简单,sort -u就可以搞定,但是如果我希望保持文本原有的顺序,比如这里有两个aaaa,我只是希望去掉第二个aaaa,而第一个aaaa在bbbb的前面,去重后仍旧要在它前面,所以我期望的输出结果是当然,这个问题本身并不难,用C++或python写起来都很容易,但所谓杀机焉用牛刀,能用shell命令解决时,它永远都是我们的首选。答案在最后给出,下面说说我是如何想到这样

Shell实现文本去重并操持原有顺序(shell读取文本内容到变量)

我们有时候想把自己的目录加入环境变量PATH时会在~/.bashrc文件中这样写,比如待加入的目录为$HOME/bin这样我们等于是在PATH追加了路径$HOME/bin并让它在最前面被搜索到,但当我们执行source ~/.bashrc后,$HOME/bin目录就会被加入PATH,如果我们下次再添加一个目录,比如再执行source ~/.bashrc时,$HOME/bin目录在PATH中其实会有两份记录,虽然这不影响使用,但对于一个强迫症来说,这是无法忍受的,于是问题就变成了,我们需要去掉$PATH里重复的路径,并且保持原有路径顺序不变,也就是原本谁在前面,去重后仍旧在前面,因为在执行shell命令时是从第一个路径开始查找的,所以顺序很重要

好了,说了这么多我们来揭示最终的结果,以文章开始的数据为例,假设输入文件是in.txt,命令如下这些都是很简单的shell命令,下面稍作解释

大家可以从第一条命令开始,并依次组合,看看实际输出效果,那样便更容易理解了。对于$PATH中的重复路径又该如何处理呢,还是以前面的例子来说,只需在前后用tr做一下转换即可其实这样使用PATH会有个问题,比如我们执行了以上命令后,如果想去掉$HOME/bin这个路径,仅仅修改为如下内容是不够的因为我们已经将$HOME/bin加入了$PATH中,这样做并没有起到删除的作用,也许最好的方式还是自己清楚的知道所有路径,然后显示指定,而不是采取追加的方式

shell脚本编程实现9*9乘法表 脚本内容#!/bin/bashforiin"1""2""3""4""5""6""7""8""9"doforjin"1""2""3""4""5""6""7""8""9"doif[${j}-lt${i}]thenk=$((i*j))echo-n${i}*${j}=${k}$'t'fiif[${j}-eq${i}]thenk=$((i*j))echo${i}*${j}=${k}fido

shell生成简单格式的xml实例 以下是shell代码:create_xml.sh#!/bin/bash#author:dengzhaoqun#date:/outfile=outtabs=0put(){echo''${*}''$outfile}put_head(){put''${1}''}out_tabs(){tmp=0tabsstr=""while[$tmp-lt$((tabs))]dotab

shell编程中的字符串截取方法小结 一、GnuLinuxshell截取字符变量的前8位,有方法如下:1.exprsubstr$a.echo$a|awk‘{printsubstr(,1,8)}'3.echo$a|cut-c1-.echo$5.expr$a:‘(.\).*'6.echo$a|ddbs=1count=/dev/null二

标签: shell读取文本内容到变量

本文链接地址:https://www.jiuchutong.com/biancheng/381216.html 转载请保留说明!

上一篇:Shell脚本创建指定大小文件的测试数据(创建shell脚本命令)

下一篇:shell脚本编程实现9*9乘法表(shell脚本编程实验报告)

  • 出口退税便捷退税操作流程
  • 设计合同服务期限怎么写
  • 缴纳增值税影响损益吗
  • 足浴行业是否需要缴纳文化事业建设税
  • 工资个人所得税怎么算
  • 土增清算问题
  • 水泥建材公司
  • 国债利息收入要计入应纳税所得额吗
  • 什么时候贷主营业务成本
  • 个体户开电子发票需要交税吗
  • 提现的现金流量代码是什么
  • 货物运输代理费用会计分录
  • 股东个人固定资产怎么查
  • 委托加工物资两种情况例题
  • 凭证审核签字操作只能
  • 月末应付职工薪酬计算方法
  • 突然收到银联入账收入怎么办
  • 公司给员工的奖品是否要扣税
  • 公司没有发票的做内账,那么支付款从哪里来
  • 营改增后取得土地转让
  • 主营业务收入是营业收入吗
  • 房地产开发经营属于什么行业类别
  • 会计明细账簿包括哪些
  • 税控盘年费每年都可以抵扣吗
  • 预提费用和待摊费用是根据以下哪项原则设置的会计科目
  • 个人代开专票季未超30万附加税需要交吗
  • 残保金属于现金流量表中的哪一项
  • 发票金额大于报销金额违法吗
  • w10控制中心在哪
  • PHP:pg_result_error_field()的用法_PostgreSQL函数
  • 增值税纳税申报首先要稽核比对
  • 莱奇沃思田园城市
  • 试运行期间收入和成本怎么记账
  • 海关滞报金可以税前扣除吗 江苏
  • Docker部署nginx
  • phpsetcookie
  • 十分=1
  • 合同负债和预收负债的区别
  • 史密斯理工学院
  • thinkphp yii
  • 2023年我要实现的目标是
  • 专项资金怎么填表
  • 外包人员的餐费可以全部扣除吗
  • 企业用车年检需要什么资料
  • 代收电费增值税品目
  • 印花税购销合同包括哪些
  • sql按分隔符截取
  • 跨月的凭证出错如何处理
  • 记账凭证粘贴顺序银行回单
  • 企业所得税如何抵扣
  • 附加税多计提了怎么做分录
  • 物业公司劳务外包
  • 劳务收入是什么科目
  • 上月留抵税怎么算应纳税额
  • 财产租赁合同印花税计税依据
  • 现金支票取现的法律规定
  • 我的发票查询
  • windows下启动mysql的命令是什么
  • mysql 5.7启动
  • mysql支持的数据类型主要有哪几类
  • hyper v虚拟机
  • 详述社会体育学科的研究对象
  • win7 双击不能打开文件
  • win8.1评估版
  • 虚拟主机管理平台
  • 使用windows防火墙禁止软件联网
  • win7假死真正解决办法
  • win7系统每次关机都安装更新
  • WebSocket+node.js创建即时通信的Web聊天服务器
  • 如何用bat批量删除文件
  • PHP+jquery+ajax实现分页
  • 安卓机虚拟键盘
  • iframe隐藏页面内容
  • jquery validation
  • shell脚本实现自动化巡检报警发送邮箱
  • javascript基础教程pdf
  • 广西税务申报增值税时为什么打开表格时总是加载中
  • 怎么屏蔽微信群消息,但是不退出此群
  • 地税局属于市直单位吗
  • 广东税务微信公众号微办税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设