做兼职的设计网站有哪些,中英文网站开发,设计做兼职最好的网站,江苏省江建集团有限公司建设网站grep awk 1.grep命令1.1 基本格式1.2 常用选项 2.awk命令2.1 awk工作原理2.2 awk命令格式2.3 awk常用内置变量 1.grep命令
1.1 基本格式
grep [选项]… 查找条件 目标文件1.2 常用选项
选项功能 -m [ x ]匹配x次 后停止,x为具体数字-v取反 -i忽略字符大小写 -n显示匹配的 … grep awk 1.grep命令1.1 基本格式1.2 常用选项 2.awk命令2.1 awk工作原理2.2 awk命令格式2.3 awk常用内置变量 1.grep命令
1.1 基本格式
grep [选项]… 查找条件 目标文件1.2 常用选项
选项功能 -m [ x ]匹配x次 后停止,x为具体数字-v取反 -i忽略字符大小写 -n显示匹配的 行号 -c统计匹配的行数 -o 仅显示匹配到的字符串-q静默模式不输出任何信息 -A x after匹配内容的后x行-B x before前x行-C x context前后各x行-e实现多个选项间的逻辑or关系-w匹配 整个单词 -E 使用扩展正则表达式相当于egrep-F不支持正则表达式相当于fgrep-r递归目录但不处理软链接-R递归目录但处理软链接-f filefile 根据模式文件处理两个文件相同内容 把第一个文件作为匹配条件-colorauto对匹配到的文本着色显示
-m 匹配#次后停止grep -m 1 root /etc/passwd #多个匹配只取第一个-v 取反grep -Ev ^[[:space:]]*#|^$ /etc/fstab#非空行-c 统计匹配的行数grep -c root /etc/passwd #统计匹配到的行数-A x after 匹配内容的后x行 grep -A3 root /etc/passwd #匹配到的行后3行业显示出来-e 实现多个选项间的逻辑or关系grep -e root -e bash /etc/passwd #包含root或者包含bash 的行grep -E root|bash /etc/passwd #使用扩展正则表达式的写法-w 匹配整个单词grep -w root /etc/passwd2.awk命令
2.1 awk工作原理
-----------------
| 输入文件 |
| 或标准输入 |
-----------------|v
-----------------
| 分割输入行 |
-----------------|v
-----------------
| 匹配模式 |
-----------------|v
-----------------
| 执行动作 |
-----------------|v
-----------------
| 处理下一行 |
-----------------|v循环结束读取输入AWK首先读取输入文件或从标准输入接收输入 分割输入AWK默认将输入行分割成字段并使用空格或制表符作为字段分隔符 匹配模式AWK使用模式匹配来确定需要处理的行可以使用正则表达式或其他条件来指定匹配的行。如果没有指定模式AWK将默认匹配所有行 执行动作当输入行与模式匹配时AWK执行相应的动作 处理下一行一旦完成当前行的处理AWK继续处理下一行重复上述步骤。
2.2 awk命令格式
awk默认使用正则表达式 所以不需要\
#命令格式#
awk [选项] [模式匹配条件]{操作 } 文件1 文件2..#选项##一般只有-F常用
-F 指定分隔符,默认的分隔符是若干个连续空白符,默认的时候可不写
-v 自定义变量
-f 脚本awk /匹配条件/{ print $x }#匹配条件可以不写 x为任意数字#模式匹配条件格式#/ 匹配条件 /
# 起始 结束
#/ / 一定要加 #操作#
#常用的 只有 print awk { print $1 }awk { print $1 $2 $3 .... }#awk会自动压缩空格不需要再写tr -s 2.3 awk常用内置变量
内置变量功能FS指定每行文本的字段分隔符缺省为空格或制表符tab。与 “-F”作用相同 -v “FS:”OFS输出时的分隔符NF当前处理的行的字段个数NR当前处理的行的行号序数$0当前处理的行的整行内容$n当前处理行的第n个字段第n列FILENAME被处理的文件名RS行分隔符。awk从文件上读取资料时将根据RS的定义就把资料切割成许多条记录而awk一次仅读入一条记录进行处理。预设值是\n
########### FS #################
[rootlocalhost ky15]#awk -v FS: {print $1FS$3} /etc/passwd
#此处FS 相当于于变量 -v 变量赋值 相当于 指定 为分隔符
[rootlocalhost ky15]#awk -F: {print $1:$3} /etc/passwdshell中的变量
[rootlocalhost ky15]#fs:;awk -v FS$fs {print $1FS$3} /etc/passwd
#定义变量传给FS######### 支持变量 ##################
[rootlocalhost ky15]#fs:;awk -v FS$fs -v OFS {print $1,$3} /etc/passwd
#输出分隔符-F -FS一起使用 -F 的优先级高############ OFS ##########
[rootlocalhost ~]#awk -v FS: -v OFS {print $1,$3} /etc/passwd
root0
bin1
daemon2
adm3
lp4
sync5######## RS #######
默认是已 /n 换行符为一条记录的分隔符
不动他
[rootlocalhost ~]#echo $PATH | awk -v RS: {print $0}
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/root/bin################## NF ###################
代表字段的个数
[rootlocalhost ky15]#awk -F: {print NF} /etc/passwd[rootlocalhost ky15]#awk -F: {print $NF} /etc/passwd
#$NF最后一个字段[rootlocalhost ky15]#df|awk -F: {print $(NF-1)}
#倒数第二行
[rootlocalhost ky15]#df|awk -F [ %] {print $(NF-1)}################ NR ######################
行号
[rootlocalhost ky15]#awk {print $1,NR} /etc/passwd
##行号
[rootlocalhost ky15]#awk NR2{print $1} /etc/passwd
#只取第二行的第一个字段
[rootlocalhost ky15]#awk NR1,NR3{print} passwd
#打印出1到3 行
[rootlocalhost ky15]#awk NR1||NR3{print} passwd
#打印出1和3行
[rootlocalhost ky15]#awk (NR%2)0{print NR} passwd
#打印出函数取余数为0行
[rootlocalhost ky15]#awk (NR%2)1{print NR} passwd
#打印出函数取余数为1的行
[rootlocalhost ky15]#awk NR3 NR6{print NR,$0} /etc/passwd[rootlocalhost ky15]#seq 10|awk NR5 NR10
#取 行间
6
7
8
9
[rootlocalhost ky15]#awk $31000{print} /etc/passwd
#注意分隔符
#打印出普通用户 第三列 大于1000 的行################ FNR ############
[rootlocalhost data]#cat /etc/issue |wc -l
3
[rootlocalhost data]#cat /etc/os-release |wc -l
16
[rootlocalhost data]#awk {print FNR} /etc/issue /etc/os-release
1
2
3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16################ FILENAME ############
[rootlocalhost ~]#awk -F: NR2{print FILENAME} /etc/passwd
/etc/passwd