与管道相关的几个命令处理

如果我们需要获取数据,而原始数据需要经过一系列的过滤、分析、处理后才是我们需要的,那么bash脚本里,需要使用管道"|"来处理。

管道只处理前一个命令输出到stdout的信息。管道处理是以行为单位(段)来处理前一个命令的输出,以回车换行为标致。

(一)部分截取cut 

截取命令是针对一行一行来进行的。

cut 指定分隔符进行分割,然后指定截取哪些“域”(列),在处理多空格的时候有些麻烦。

-d :指定分隔字符。
-f :-d分隔后,截取哪些列,从1开始。
-c :以字符 为单位取出固定字符区间,-c 12-20表示取12个字符到20个字符之间的段

(二)整行过滤截取grep

grep命令,分析一行中,如果有我们想要的信息,就将改行整个取出来

-a :将 binary 档案以 text 档案的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行

(三)排序sort

默认以第1列来排序,按字符顺序排序,常见参数如下:

-f :忽略大小写 
-b :忽略最前面的空格;
-M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
-n :按数字进行排序(默认以文字型态来排序的);
-r :反向排序;
-u :就是 uniq ,相同的数据中,仅出现一行代表;
-t :指定分隔符,默认 tab ;
-k :以那个区间 (field) 来进行排序的意思,

(四)相同元素统计uniq,通常在sort后,重复的信息行删掉,只显示一项,参数如下:

-i :忽略大小写字符的不同;
-c :进行计数

(五)统计wc,统计文件里信息有多少行、多少字符、多少字,参数如下:

-l 行

-w 字

-m 字符

(六)处理的数据流双向导出,处理数据流既想导出到文件,又想在管道里继续处理,使用 tee

tee [-a] file
ifconfig |grep mtu |cut -d ':' -f 1|tee ifname.txt |awk '{print $1}'


(七)对信息流进行删除字符或替换字符 tr

参数:
-d :删除信息流中的某个字符串
-s :取代掉重复的字符


(八) tab键和空格键的相互替换 col

-x  将对等数量的tab转成空格

-h 将对等数量的空格转成tab


(九)join命令,合并文件,如果2个文件有相同类型&值的列,通过相同列将这2个文件联合起来,以便以后处理 

-t :join 默认以空格符分隔数据,并且比对第一列字段为合并相同列,如果两个档案相同,则将两笔数据联成一行,且第一个字段放在第一个。
-i :忽略大小写
-1  x:第一个文件以第x列作为合并相同列
-2  y:第一个文件以第x列作为合并相同列


(十)paste 将两个文件,以行为单位,直接粘贴在一起

-d :指定分隔字符,默认 [tab] 来分隔的!
- :如果 file 部分写成 - ,表示其中一个文件来自standard output。

cat a.config |paste b.config c.config -     标识将a.config ,b.config,c.config 合在一起


(十一)expand 将 [tab] 按键转成空格键

-t :后面可以接数字,标识替换为多少个空格

cat /etc/man.config |expand -t 4 |cat -A


(十二)split 分割文档

-b 按大小来分割,单位是b k m 

-l 按行数来分割


(十三)xargs 参数代换

xargs 可以读入 stdin 的数据,并且以空格符或断行字符作为分辨,将 stdin 的资料分隔成为 arguments。xargs 后面没有接任何的指令时,默认是以 echo 来进行输出

cut -d':' -f1 < /etc/passwd |head -n 3| xargs finger


(十四)减号 - 的用途

某些指令需要用到文件名称 (例如 tar) 来进行处理时,该 stdin 与 stdout 可以利用减号 "-" 来替代。

 tar -cvf - /etc/passwd  |tar -xvf -








【完美复现】面向配电网韧性提升的移动储能预布局动态调度策略【IEEE33节点】(Matlab代码实现)内容概要:本文介绍了基于IEEE33节点的配电网韧性提升方法,重点研究了移动储能系统的预布局动态调度策略。通过Matlab代码实现,提出了一种结合预配置和动态调度的两阶段优化模型,旨在应对电网故障或极端事件时快速恢复供电能力。文中采用了多种智能优化算法(如PSO、MPSO、TACPSO、SOA、GA等)进行对比分析,验证所提策略的有效性和优越性。研究不仅关注移动储能单元的初始部署位置,还深入探讨其在故障发生后的动态路径规划电力支援过程,从而全面提升配电网的韧性水平。; 适合人群:具备电力系统基础知识和Matlab编程能力的研究生、科研人员及从事智能电网、能源系统优化等相关领域的工程技术人员。; 使用场景及目标:①用于科研复现,特别是IEEE顶刊或SCI一区论文中关于配电网韧性、应急电源调度的研究;②支撑电力系统在灾害或故障条件下的恢复力优化设计,提升实际电网应对突发事件的能力;③为移动储能系统在智能配电网中的应用提供理论依据和技术支持。; 阅读建议:建议读者结合提供的Matlab代码逐模块分析,重点关注目标函数建模、约束条件设置以及智能算法的实现细节。同时推荐参考文中提及的MPS预配置动态调度上下两部分,系统掌握完整的技术路线,并可通过替换不同算法或测试系统进一步拓展研究。
先看效果: https://pan.quark.cn/s/3756295eddc9 在C#软件开发过程中,DateTimePicker组件被视为一种常见且关键的构成部分,它为用户提供了图形化的途径来选取日期时间。 此类控件多应用于需要用户输入日期或时间数据的场景,例如日程管理、订单管理或时间记录等情境。 针对这一主题,我们将细致研究DateTimePicker的操作方法、具备的功能以及相关的C#编程理念。 DateTimePicker控件是由.NET Framework所支持的一种界面组件,适用于在Windows Forms应用程序中部署。 在构建阶段,程序员能够通过调整属性来设定其视觉形态及运作模式,诸如设定日期的显示格式、是否展现时间选项、预设的初始值等。 在执行阶段,用户能够通过点击日历图标的下拉列表来选定日期,或是在文本区域直接键入日期信息,随后按下Tab键或回车键以确认所选定的内容。 在C#语言中,DateTime结构是处理日期时间数据的核心,而DateTimePicker控件的值则表现为DateTime类型的实例。 用户能够借助`Value`属性来读取或设定用户所选择的日期时间。 例如,以下代码片段展示了如何为DateTimePicker设定初始的日期值:```csharpDateTimePicker dateTimePicker = new DateTimePicker();dateTimePicker.Value = DateTime.Now;```再者,DateTimePicker控件还内置了事件响应机制,比如`ValueChanged`事件,当用户修改日期或时间时会自动激活。 开发者可以注册该事件以执行特定的功能,例如进行输入验证或更新关联的数据:``...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值