位置: 编程技术 - 正文

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天内没做税务登记
  • 房地产企业售楼降价法律条文
  • 银行承兑逾期证明怎么写
  • 物流公司 报关
  • 实收资本需要计提印花税吗
  • 变电站是否缴纳房产税
  • 机器维修费的会计科目
  • 企业所得税的减按征收如何计算
  • 个税前几个月没有工资,累计减除费用会累计吗
  • 应交增值税出口退税科目怎么结平
  • 建筑安装工程费用人工费计算方式
  • 新公司企业怎么注册
  • 财务报表年报和季报必须一样吗
  • 无偿划转房产能否入递延收益
  • 货到付款一般付多少运费
  • 建筑行业简易征收税率是5%吗?
  • 如何看云空间的内容
  • php封装接口
  • 收到客户预付的货款的会计分录
  • 公司邮票报销
  • windows11怎么设置锁屏时间
  • 增加注册资本的请示
  • 简易计税方法的适用主体有
  • php获取数组的值
  • 企业怎么知道增值税的核定方法
  • 我国增值税的纳税范围包括
  • 投资者追加资本金属于什么
  • code structure
  • iconfont原理
  • 无形资产法
  • uncompressing
  • 支付工资会计
  • 公司注册资金多好还是少好
  • 现金付款凭证是发票吗
  • 个人去开票要交税吗
  • 劳务公司已开票怎么入账
  • 固定资产补入账和补提折旧
  • 存货跌价准备是什么意思
  • 以前年度买的固定资产一直未入账,现在还能入账吗?
  • 受托加工的成本
  • 保证金计算器
  • 单位的车辆
  • 私募基金公司收入高吗
  • 印花税根据一个月的销售额来计提吗
  • 建筑行业异地预缴税率
  • 应交税费借方如何计算
  • 融资租赁和经营租赁的会计处理
  • 税控盘被锁死
  • 处置投资性房地产取得的收入属于企业收入吗
  • 什么是企业合并的具体动因之一
  • win10安装apache服务失败
  • winxp/win7/win2003 电脑开机密码设置图文方法
  • win7系统出现蓝屏
  • win10升级 其他用户
  • win10更新补丁后键盘失灵
  • win8怎么改成win10
  • cocos资源释放
  • mac安装osx失败
  • perl-v
  • html和js如何应用
  • 编写高质量代码改善JAVA程序的151个建议
  • shell定时删除指定目录下的文件夹
  • Re: Latest Version: 3.7.9 (January 18th, 2015)
  • javascript简明教程
  • python批量执行命令
  • js的span标签
  • 随申办如何缴纳社保
  • 郑州市华润燃气多少钱一立方
  • 残疾人保障金如何填报
  • 发票机怎么测试打印
  • 国家级运动员怎么申请
  • 山西省网上营业执照申请官网?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设