位置: 编程技术 - 正文

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

  • 小规模纳税人滚动累计
  • 电脑填制记账凭证实训心得
  • 混合销售行为如何缴纳增值税税率
  • 开咨询费需要合同吗
  • 开业前所有费用叫做什么
  • 私人车辆油费可以报销吗
  • 买二手房没满2年多少税
  • 企业一直亏损但是汇算清缴调增
  • 车量购置税申报流程是什么样的?
  • 小规模建筑企业预缴税款
  • 本月计错多发的工资可以不交个税
  • 购买面粉的税率是多少
  • 股权激励个人所得税计算器
  • 预收账款抵扣怎么做分录
  • 一般纳税人增值税申报操作流程
  • 住房维修基金使用管理办法
  • 拆迁安置土地的补偿标准
  • 公司办事处人员配置标准最新
  • 承兑到期了怎么办
  • 验资报告需要什么材料
  • 新开办公司前三个月没交社保,后面正常缴纳
  • 溢价发行债券利息
  • powershell不显示用户名
  • 企业所得税申报错误怎么更改
  • 如何处理企业所得税纠纷
  • 工资达到起征点 报税时没有税款
  • PHP Warning:PHP Startup: in Unknown on line 0解决办法
  • php抽奖算法程序怎么写
  • 租赁固定资产成本怎么算
  • 购买农产品没有承担增值税为什么还要计算抵扣
  • php提高性能
  • 高新技术企业在哪申报年报
  • 新会计准则5步法
  • 最薄的电视机是多厚
  • 单臂路由实验目的
  • 律师异地办案家属要跟着吗
  • 公允价值进行会计计量
  • php cookie session
  • 2021前端校招笔试
  • 如何在Android中找到关闭的文件
  • progress的用法及短语
  • win10日历点不开
  • Huggingface之transformers零基础使用指南
  • 关于酒店采购
  • 货币资金有余额怎样填写清税申报表
  • 待处理财产损溢在资产负债表中填哪里
  • vue动态修改scss变量
  • 食堂购买固定资产会计处理
  • 公司开一般户需要多久
  • 持有至到期投资属于流动资产吗
  • 解决PostgreSQL服务启动后占用100% CPU卡死的问题
  • 家电销售的税率
  • 农村合作社怎么办理流程
  • 超过认证期专用发票怎么办
  • 上年亏损次年赢亏怎么算
  • 小规模企业收到专票怎么做账
  • 旅行社增值税2020
  • 固定资产累计折旧会计科目
  • 给客户买的礼品要交税吗
  • 公司注销应付账款要为零吗
  • 小规模纳税人公户转私户可以吗
  • 小企业建账流程图
  • Windows Server 2008下利用Diskpart管理磁盘
  • 笔记本电脑bios更新
  • centos内存占用进程
  • win8系统开机界面
  • win10mobile下载官网
  • qtask.exe - qtask是什么进程 有什么用
  • win7系统连接无线鼠标
  • 测试模式win8专业版 9200
  • java的理解
  • perl 哈希用法
  • vue.js 2.x
  • 深入理解新发展理念,推进供给侧结构性改革
  • nodejs的http
  • vuex按需加载
  • bootstrap范例
  • 上海市税务局招聘
  • 国土局和地税局的区别
  • 纳税申报2020年2月
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设