位置: 编程技术 - 正文

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

  • 实收资本印花税最新规定
  • 二手商铺买卖税率大约百分比
  • 股东投资的钱放在哪里
  • 公司为员工报销的医药费
  • 债务重组计入哪项科目
  • 印花税按什么金额吗
  • 计提应收的增值税返还
  • 企业其他综合收益减少应该怎么处理
  • 个人独资企业的债务由谁承担
  • 税收用在哪些方面
  • 固定资产认证进项在勾选平台勾吗
  • 其他应付款重分类到哪个科目
  • 客户把发票弄丢了,红冲重新开了会有什么风险
  • 实收资本印花税属于什么税目
  • 小规模纳税人酒水税率
  • 适用差额征税的小规模纳税人有哪些
  • 最新出口退税率调整
  • 水利基金减免政策2019 未超过10万
  • 企业预算报表如何做
  • 小规模纳税人减按1%如何填报申报表
  • 金融企业哪些呆账损失可以在税前扣除?
  • 包工包料装修
  • 出租包装物和出借包装物的摊销额
  • 预提待摊费用怎么做账
  • 管理费用金额多做了,如何减少
  • 年末应计提坏账准备为什么是负数
  • 多发工资未退回会怎么样
  • 关于出售使用过的车辆
  • 企业房产税如何计算方法
  • 计提坏账准备的方法有哪些
  • 现代服务业进项税加计扣除申报怎么填
  • redis设置内存淘汰策略
  • elemental ui
  • 计算机视觉算法
  • 毕业设计基于plc的全自动包装机
  • vue状态机
  • 接待客人发生的事故
  • 记账复核是谁
  • 个人独资企业只有收入没有成本和费用
  • 公司购买办公家具可以抵扣吗
  • 计划成本法实际成本怎么算
  • 费用什么情况下要写报销单呢
  • 财政补助收入的账务处理
  • 小规模季度超过45万了怎么缴纳
  • 物流公司挂靠会计处理?
  • 固定资产抵债交不交增值税
  • 开发成本存货怎么算
  • 研发支出费用化对财务报表的影响
  • 其他人挂靠公司交社保会计处理怎么做?
  • 公司账户存定期利息
  • 合同资产结转收入
  • 一个完整的活动策划方案范文
  • sql语句 时间差
  • Cont()与Where().Count()有时性能差别如此之大!
  • 简单介绍linux系统有哪些主要特点?
  • 搜狗拼音输入法xp系统
  • 在windowsxp中删除文件
  • fedora phpMyAdmin 安装方法及介绍
  • 怎样开启bios
  • 解决mac上不能写字的办法
  • 如何把windowsxp换成windows7
  • win10应用商店是灰的
  • lowleverfatal error怎么解决
  • win10预览体验三个选项
  • win8兼容性比win7好吗
  • unity alembic
  • shell脚本判断字符串是否为空
  • Shell脚本监控linux系统信息
  • nodejs socket hang up
  • android aidl binder
  • 用js改变css样式
  • python jose
  • jquery手册手机版
  • 税控盘怎么查看开票截止日期
  • 大征期 是什么
  • 中华人民共和国刑法
  • 北京昌平区租房价格
  • 预交增值税税款退税流程
  • 软件使用权转让税率
  • 租房税费怎么算的
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设