位置: 编程技术 - 正文

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

  • 什么叫抵扣进项
  • 微信转账报销怎么转换成文字
  • 其他综合收益影响所有者权益吗
  • 税费返还如何处理
  • 材料加工计入什么科目
  • 企业用于存货的支出
  • 租赁的设备伤人了谁的责任
  • 货款尚未收到用什么记账凭证
  • 工资退回怎么处理
  • 小规模纳税人收入账务处理
  • 怎么在电子税务局变更财务负责人
  • 生活支出计入什么科目
  • 企业自主招聘有编制吗
  • 货到票未到的会计账务处理
  • 优化技巧
  • 房地产开发企业的土地使用权计入哪里
  • 固定资产折旧率是多少
  • 剑灵配置要求2020官方
  • php轻松入门视频教程
  • 未签订销售合同
  • 审核过程中发现的问题应由被审核部门实施纠正
  • thinkphp6依赖注入
  • vuewatch监听对象及对应值的变化
  • web前端性能响应时间
  • Vue(ref和$refs属性介绍与使用)
  • 基本户理财产品有哪些
  • 出售汽车固定资产要交什么税
  • MyBatis MapperProvider MessageFormat拼接批量SQL语句执行报错的原因分析及解决办法
  • 现金发放工资会计科目怎么写
  • 企业低值易耗品的摊销方法有
  • 营改增小规模纳税人认定标准
  • 营业外支出影响企业利润吗
  • access里面也暗含了sql
  • 继续教育的相关知识
  • 资产总额的季度平均值
  • 债券投资属于什么
  • 教育费附加退费
  • 预借备用金的会计分录
  • 建筑企业包工包料业务的发票开具和涉税处理
  • 坏账准备转回并收到货款会计分录
  • 出口退税的会计分录为什么在贷方
  • 进料料件复出可以给第三方吗
  • 营业执照的注册号怎么查询
  • 电动车折旧年限及残值
  • 可供出售金融资产属于什么科目
  • 企业账务流程
  • 税务入账的加油费怎么算
  • 平台使用费属于什么服务
  • 对公账户可以取钱出来吗
  • 国际贸易单证有什么制单要求
  • win8更改系统字体
  • 丢失的身份证补办后,原本的身份证还有用吗
  • macbookair安装rosetta
  • centos更新命令
  • 安装操作系统win10
  • 使用微软
  • windowsxp还能正常使用吗
  • linux 命令大全
  • 电脑xp自带的杀毒软件在哪里
  • macos 关闭屏幕
  • win8适合打游戏吗
  • 64位win7安装kb3038314补丁更新失败临时解决方法
  • win7禁用全屏优化在哪
  • 免费升级windows10
  • js下拉加载
  • android studio打包jar文件
  • 原生js import
  • 安卓系统休眠设置在哪
  • Python实现定时任务
  • js实现左右拖动功能
  • ECLIPSE编辑器
  • [置顶]游戏名:chivalry2
  • 美股印花税如何收取
  • 12366人工服务时间节假日上班吗
  • 报fob价格最后谁退税
  • 耕地建仓库属于违规
  • 个人所得税追缴很快就缴清了还会被罚款吗
  • 北京地税残疾人补贴政策
  • 建筑施工及安装单位企业在异地
  • 一般纳税人开红字发票怎么报税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设