shell sort 最后一列排序_shell 函数、shell 工具

系统函数

调用系统自带的一些函数

basename:

这直接给个例子吧,其实就是截取路径中的文件名称2e1e6c272803da3d46fd9ab87db64239.png

dirname:

获取文件的绝对路径e4a8932adc6df0a84c96e89f5b802a6d.png

自定义函数

基本语法:
[ function ]funname[ () ]
{
Action;
[return int;]
}
funname

举个栗子:定义一个加法函数:
(后面就都是从脚本内容直接写了哈)

#!/bin/bash

看下运行结果:4dd780a1139f906928ec821abc795a19.png

shell 工具

cut:

用来切分:cut[选项参数] filename

-f 表示取几列
-d 表示用什么分隔符来切分

定义一个cut文本文件:

myz myz myz
loves likes hates
her typing tobe
family code fat

先来输出个第一列:95df25b731aa1fdac55ac0275fdb5d30.png
再来输出个2,3列20736c0eb5cc9765db2e681b5662668e.png
在cut.txt中切割出love38db369d0737629f49b8e1144d62b139.png
顺嘴一句,把一行切出来:14b0d8a32df72cc58c3be800d1d422d9.png

再来一个,选取系统PATH的变量值,从第二个“:”之后输出:adbf802d69b7f978808da9b0b4b762d2.png

sed

流编辑器,一次处理一行内容。
-e 直接在指令列模式上进行sed动作指令
a 新增,a的后面可以跟字符串,在下一行出现
d 删除
s 查找并替换
还是建一个内容和刚刚一样的txt文件吧:
然后来操作–
在第二行插入“ha ha ha”72afd931334b0adbed31e73ccbdc6256.png
但是文件本身没变哦!!还是原来的文件!只是输出变啦!
接下来,将包含“loves”的一行删除16438af3ab77d83b7385c5a034d67dc5.png
把文件中的myz替换成xiaomeid05894c069f85ffa793977878bd00366.png

awk

数据准备

cp 

搜索passwd文件以root关键字开头的所有行,并输出该行的第7列。

-F: 

搜索passwd文件以root关键字开头的所有行,并输出该行的第1列和第7列,中间以“,”号分割。

-F: 

注意:只有匹配了pattern的行才会执行action

只显示/etc/passwd的第一列和第七列,以逗号分割,且在所有行前面添加列名user,shell在最后一行添加"dahaige,/bin/zuishuai"

-F : 

注意:BEGIN 在所有数据读取行之前执行;END 在所有数据执行之后执行。

将passwd文件中的用户id增加数值1并输出

-v i=1 

awk的内置变量

FILENAME 文件名
NR 已读的记录数
NF 浏览记录的域的个数(切割后,列的个数)

案例实操
统计passwd文件名,每行的行号,每行的列数

-F: 

切割IP

| grep 

查询sed.txt中空行所在的行号

'/^$/{print NR}' sed
sort

排序 -n:按照数值的大小来排序
-r:以相反的顺序来排序
-t:设置排序时所用的分割字符
-k:指定需要排序的列

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值