shell mysql awk_shell下的awk

1.AWK

--处理文本的编程语言工具

awk '条件 {动作} 条件 {动作}...' filename --->操作的文件名

--语言基础是,只要查找与命令行中有模式匹配,就去执行一系列的指令,

--扫描文件中的每一行,查找与命令行中给定的内容相匹配的模式,执行指令,没 有,执行下一行

2.{}在程序中不需要始终出现,用于特定模式的一系列指令进行分组。

3.一行就是记录,每条记录可以包含若干字段,字段的分隔符是空格或者是制表符。记录的分隔符是换行,

4.模式

使用匹配模式,可以对特定的记录进行操作,模式匹配最简单形式的搜索,匹配项目包含在斜线中/pattem/

---例子 ---> awk '/and/ {print $3}' filename

print打印

打印出记录中包含有“and”的第三个字段

也可以不用{},打印出模式匹配的记录

2).echo中的特殊字数

\n --> 换行

\t -->制表

\b --> 退格

\f -->进纸

\r -->回车

3).搜索多个模式匹配,用通道符号(|)分隔

例子:awk 'patten1|patten2{}' filename

--注意-->模式匹配中空格也是一个字符

4).对特定的字段进行模式匹配,通过代字号(~)以及特定字段说明

例子:awk'$1~ /petten/' filename

--匹配记录中字段1为patten的记录

5).代字号(!~)

例子:awk'$1 !~ /petten/' filename

-->匹配记录中字段1不为patten的记录

2.或括号和字段分隔符

1).花括号

只有一对括号时,括号内的所有操作同事发生

有多对括号时,这条记录执行完第一组命令,完成后执行第二组操作

2).分隔符

--字段分隔符默认是空格或者是制表符

1.当想要使用别的字符当做分隔符时使用可以使用 ==>命令行参数-F或者是程序中指定变量FS。

awk '{FS = "自定义字符"} {print $2}'filename

awk -F自定义字符'{print $2}'filename

2.通过使用--输出字段分隔符(OPS)变量,可以在程序中更改分隔符特性

awk -F" " '{OFS = "---"} {print $1,$2,$3,$4}' ancient.txt

师太,穿错了,那是我的袈裟---------

look---and---see---

look---and---addfd---

wo---shi---sun---wu

时间渐渐磨去了年少轻狂,---也渐渐沉淀了冷暖自知----时间寄语---

how:old:are:you---------

I:fine:thanks---------

look---and---see---

root@hecs-x-medium-2-linux-20200416095858:~/school#

字段分隔符时空格,现在改成(--)这样的分隔符

3.打印是为每行编号 -->使用NR变量

例子 awk '{print NR $1,$2,$3,$4}' filename

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值