shell字符串处理

grep:

-n 打印行号
-v 不包括,反向过滤
-E 使用扩展的正则表达式
-i 忽略大小写
-c 统计文中出现的次数
-A 打印匹配行后N行
-B 打印匹配行前N行
-C 打印匹配行前后N行

cut 列提取命令 **cut [选项] 文件名

-f 列号 :提取第几列,可以提供多个列,列号之间用逗号隔开。
-d 分隔符:按照指定分隔符分割列,默认使用制表符作为分隔符。
-c 通过字符范围来进行字段提取。“n-”表示提取从第n个字符到行尾,“n-m”:从第n个字符

printf 格式化输出 printf ‘输出类型 输出格式’ 输出内容

输出类型

	%ns:输出字符串 n是数字代表输出几个字符
	%ni:输出整数,n是数字代表输出几个数字
	%m.nf:输出浮点数。m和n是数字,代表输出的整数位数和小数位数
	
输出格式

	\a:输出警告音
	\f:清空屏幕
	\n:换行
	\r:回车

awk对输入文件中的每一行都执行这个脚本: awk ‘条件1{动作1} 条件2{动作2} 条件3{动作3}’ 文件名。awk 先读取一行,然后再执行每一个动作条件。

-F 指定分隔符,可使用正则表达式。分割后的第N个字段存放到$N中。$0代表整行,NF记录了字段数量,NR记录了行数,RS记录了分隔符。
BEGIN和END模块,在处理输入文件之前会执行BEGIN模块。处理输入文件之后会执行END模块。**awk ‘BEGIN {} {} END{}’
正则表达式

awk ‘/regex/{动作}’用来匹配行。
awk 'N !~ /regex/,用来匹配每一行的字段,判断符合或者不符合正则条件。


awk条件支持 > < >= <= == !=等运算符。

if-else 语句
awk ‘$2 > 6{n=n+1;pay=pay+$2+$3} 
END {  if(n>0)
        print n,"total pay is",pay
    else 
        print "no employees"
       }’
       
while语句

awk '
{
    i=1 
    while(i<=$3){
        i=i+1;
    } 
}
END {
    print i
}
''
for语句

awk '
{
    for(i=1;i<=$3;i=i+1)
        printf("\t",i)
}

awk支持数组,内置函数。

sed:用来对数据进行选取,替换,删除和新增的命令,命令格式:sed [选项] ‘[动作]’ 文件名

-n :sed命令会把所有的数据都输出,此选项只会把sed处理的行输出。
-e :运行执行多个动作,各个动作直接用 ; 分割 sed [选项] -e ‘动作1 ;动作2’
-i :sed命令对文件的的处理默认重新输出而不会修改文件内容,该选项会将处理后的内容写回文件



动作

a :追加,在指定行后添加一行或多行 sed '1,3a newContent' filePath :在第 1~3行后面各新增内容。
i :插入,在指定行前添加一行或多行 sed '1,3i newContent' filePath :在第 1~3行前面各新增内容。
d :删除,删除指定行 sed ‘1,4d’ filePath :删除1~4行的内容。
p :打印,打印指定的行。
c :行替换,将指定行替换为指定内容 sed ‘1,4c newContent’ filePath :将1~4行的内容替换为指定内容。
s :字符串替换,结合正则表达式,将字符串替换成另一个字符串。 sed ‘1,3s/regex/new/g’ :将1~3行中的符合正则表达式的字符串替换为new,g代表1~3行内符合正则表达式的都替换,可将g改为数字n,代表仅替换第k个符合条件的字符串。

sort 排序命令 **sort [选项] 文件名

-f :忽略大小写
-b :忽略每行前的空白部分
-n :以数值型进行排序,默认使用字符串类型
-r :反向排序
-u :删除重复的行
-t :指定分割符对每一行进行分割,默认使用制表符,
-k :-k 3,7 配合-t分割后,选择第3~7个字段进行排序。

uniq 用来取消重复行,类似于 sort -u uniq [选项] 文件名

-i 忽略大小写

wc 统计命令 wc [选项] 文件名

-l :只统计行数
-w :只统计单词数
-m :只统计字符数

两个文件之间比较

在这里插入图片描述
两个整数之间的比较

在这里插入图片描述

字符串判断
在这里插入图片描述
多重条件判断

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GC-757

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值