位置: 编程技术 - 正文

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脚本编程实验报告)

  • 投标保证金保险怎么买
  • 废铁回收行业前景怎么样
  • 信息采集需要填两个家庭成员,但只能有一个监护人
  • 什么企业符合加计扣除的条件
  • 企业有利润要交什么税
  • 利润表里的所得税怎么算
  • 关联方交易容易产生哪些弊端
  • 委托加工物资属于在产品吗
  • 法定盈余公积和法定公积金一样吗
  • 核定征收企业注销后安全吗
  • 所得税审核费计入什么科目
  • 购买电脑的方案
  • 无形资产研究费用计入成本么
  • 企业发生的装修费可以几年摊销
  • 贷款利息增值税发票
  • 维修费增值税
  • 三证合一后怎么看税号
  • 公司低价卖房土地增值税计税方法是什么
  • 特许权使用费怎么入账
  • 累计折旧费用
  • 房屋贷款基准利率表 历年查询
  • 小规模纳税人跨月冲红退税
  • 物流公司货车报废款怎么做账
  • 应付账款少说明什么
  • a公司转给b公司投资款的会计分录
  • 建安行业简易计税可以抵扣吗
  • 持有至到期投资科目被取消了吗
  • 客户分批付款怎么说
  • windows10最新激活密钥2020
  • 营运资金管理策略有哪些
  • 单位支付安装天然气费
  • pytorch model.module
  • 劳务派遣企业简易征收管理办法
  • 受托方代扣代缴的消费税计入什么科目
  • thinkphp exec
  • 小企业会计制度最新版
  • 钢管租赁费如何计算
  • edge 状态栏
  • 本期收入及免税收入
  • vue导入动图
  • 车险开的发票里有代收车船税吗
  • 旅行社专票开票内容的规定
  • 企业的差旅费计入什么科目
  • 金蝶软件如何输入红字
  • python concat函数用法
  • sse后端向前端推送 前端只能收到 末尾的值
  • centos7自带yum吗
  • 工厂道路设计规范
  • 公司注销员工的经济补偿哪些情况才能是2N呢
  • 商业承兑贴现几个点
  • 发票普票增票
  • mysql集群配置
  • 增值税申报抵扣联数据没有
  • 增值税扣缴义务发生时间为扣缴义务人扣缴税款的当天
  • 一般纳税人开普票和专票有什么区别
  • 事业单位劳务派遣工能长期干下去吗
  • 小规模纳税人开专票税率是1%还是3%
  • 预计负债转回对所得税费用的影响
  • 印花税每个月都报吗
  • 生产企业支付的房租怎么入账
  • 存货周转率越高好还是越低好
  • 增值税发票虚开补税原来入库的材料处理?
  • 建筑业成本必须分别核算么
  • 营改增账务处理实例
  • 应收账款的账户余额
  • sqlserver性能优化5种方式
  • mysql基本教程
  • 快速调用cmd
  • linux邮件设置方法
  • javascript中的3种继承实现方法
  • python计算文件大小
  • Ubuntu14.04 Android 源码编译
  • div-d和div-i
  • 淘宝模拟生成器
  • iframe例子
  • 江苏税务怎么在手机上办
  • 企业注销认缴与实缴是否还有风险
  • 领了不动产权证房子可以卖吗
  • 省纪检委派驻机构值得去么
  • 双休日可以拿房产证吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设