首页 > 其他分享 >Liunx中使用expr命令并结合sed计算文件中的数字

Liunx中使用expr命令并结合sed计算文件中的数字

时间:2023-04-28 18:03:00浏览次数:35  
标签:选择 第一行 数字 expr 空格 sed Liunx


Liunx中使用expr命令并结合sed计算文件中的数字

 

 

数据样例:

已选择153682行。

已选择539794行。

已选择627588行。

 

echo 计算所有 已选择 的数据 总共有多少条记录

sed -n '{/已选择/s/[^0-9]*//gp}' exp.txt | sed -n 's/[0-9]*/ &/;:a;$!N;/[0-9]*/s/\n/ + /;ta;P;D' | xargs expr

 

 

思路:

1、先选择包含“已选择”的记录行(也就是ORACLE的SPOOL导出数据时带出来的),然后整行中替换,将非数字类型全部替换为空;

sed -n '{/已选择/s/[^0-9]*//gp}' exp.txt

得到的结果将是:

153682

539794

627588

 

2、将第一行数据的头部分加个空格s/[0-9]*/ &/;

得到的结果将是:

153682

539794

627588

 

3、将组装数学表达式,循环将多行变为一行,将换行符替换成“空格+空格”

:a;$!N;/[0-9]*/s/\n/ + /;ta;P;D

得到的结果将是:

 153682 + 539794 + 627588

 

命令行说明:首先设置一个标签a,除了最后一行($!N;),其他行都执行把下一行的数据添加到模式空间(N),当匹配到以数字的行([0-9]*)就把换行符换成“空格+空格”,如果替换成功(t),就重复执行(再从a开始)否则就将模式空间的第一行打印出来(P;),然后删除模式空间的第一行(D),开始下一个循环(:a)。

 

4、将表达式作为参数传给expr 命令进行计算

 | xargs expr

 

得到结果:1321064

 

 

标签:选择,第一行,数字,expr,空格,sed,Liunx
From: https://blog.51cto.com/u_9716826/6235252

相关文章

  • 阅读文献《DCRNet:Dilated Convolution based CSI Feedback Compression for Massive M
    这篇文章的作者是广州大学的范立生老师和他的学生汤舜璞,于2022年10月发表在IEEETRANSACTIONSONVEHICULARTECHNOLOGY。文献提出了一种基于空洞卷积(DilatedConvolution)的CSI反馈网络,即空洞信道重建网络(DilatedChannelReconstructionNetwork,DCRNet)。还设计了编码器和解......
  • 界面控件DevExpress WinForm的垂直网格,让数据展示更灵活(二)
    DevExpressWinForm VerticalGrid(垂直网格)组件设计用于提供UI灵活性,它允许显示数据集中的单个行,或在其90度反向网格容器中显示多个数据集行。此外,开发者还可以将其用作属性网格,就像在VisualStudioIDE中找到的那样。PS:DevExpressWinForm拥有180+组件和UI库,能为WindowsForms......
  • sed 指定范围内查询
    时间范围内的查询sed-n'/11:0718:29:20/,/11:0718:31:11/p'catalina.outsed-n'/11:0718:29:/,/11:0718:31:/p'catalina.out 为什么sed可以根据时间范围查询sed命令并不能直接根据时间范围查询,而是利用了时间戳出现的字符串匹配功能,从而找到包含指定时间戳范围内......
  • const和constexpr
    inta=10;constint&b=a;a=20;std::cout<<b<<std::endl;//输出为20,表示虽然b用const修饰不能直接修改b但是可以通过修改b的引用a来修改binta1=10;constexprint&b1=a1;//这样写会提示错误c++11使用的constexpr更加强调常量,而之......
  • EXPLORING MODEL-BASED PLANNING WITH POLICY NETWORKS
    发表时间:2020(ICLR2020)文章要点:这篇文章说现在的planning方法都是在动作空间里randomlygenerated,这样很不高效(其实瞎扯了,很多不是随机的方法啊)。作者提出在modelbasedRL里用policy网络来做onlineplanning选择动作,提出了model-basedpolicyplanning(POPLIN)算法。作者提出......
  • Linux shell regular expression All In One
    LinuxshellregularexpressionAllInOneLinuxshell正则表达式demos(......
  • liunx基础
    ls(-l-ah)cdcpmv111find(/-name"")whichmkdir(直接用)touchpwdmorermgrepwc``>>>sudogetent(passwdgroup查看用户和用户组)chomod(-rr4w2x1)chown(【-r】1:2文件、文件夹)showduplicatessystemctl【stopstartenabledisablestatus】服务名......
  • 界面控件DevExpress Blazor UI v22.2 - 支持.NET 7
    DevExpress拥有.NET开发需要的所有平台控件,包含600多个UI控件、报表平台、DevExpressDashboardeXpressApp框架、适用于VisualStudio的CodeRush等一系列辅助工具,该组件拥有众多新产品和数十个具有高影响力的功能,可为桌面、Web和移动应用提供直观的解决方案,全面解决各种使用场......
  • Java endorsed
    endorsed目录下放置的jar会覆盖JDK。endorsed目录可以通过以下代码获得:System.out.println(System.getProperty("java.endorsed.dirs"))可以通过-Djava.endorsed.dirs指定的目录面放置的jar文件,将有覆盖系统API的功能。可以牵强的理解为,将自己修改后的API打入到虚拟机指定的启动A......
  • LengthFieldPrepender和LengthFieldBasedFrameDecoder
    1,使用LengthFieldPrepender编码,LengthFieldBasedFrameDecoder解码的netty传输......