awk内置参数应用
awk内置变量2
NR: 每行的记录号
NF: 字段数量变量
FILENAME: 正在处理的文件名
awk内置参数应用
awk -F ':' '{print $1" "$3}' passwd
awk -F ':' '{print $1,$2}’ passwd
awk -F ':' '{print $1"\t"$2}’ passwd
awk内置参数应用
awk处理方式
awk一次处理一行内容
awk对每行可以切片处理
eg: awk '{print $1}' //输出首个单词
使用awk——格式
命令行格式:
eg: awk [options] 'command' file(s)
脚本格式
eg: awk -f awk-script-file file(s)
一、正则表达单字符
1、字符
1.1 特定字符
某个具体的字符,如‘a’、‘3’等
1.2 范围内字符
单个字符[]:
数字字符:[0-9],[259]
grep '[0-9]' /etc/passwd
grep '[259]' /etc/passwd
小写字符:[a-z]
grep '[a-z]' /etc/passwd
大写字符:[A-Z]
grep '[A-Z]' /etc/passwd
反向字符^:取反[^0-9],[^0]
grep '[^0-9]' /etc/passwd
1.3 任意字符
代表任何衣蛾字符:'.'
grep 'ro.t' /etc/passwd
注意与'[.]' 和‘\.’的区别
sed格式
正则表达式总结
匹配15或18位身份证号(支持带x的)
grep '^[1-9]\([0-9]\{13\}\|[0-9]\{16\}\)[0-9xX]$' a.txt
注意范围字符的中括号
特定字符,简单字符。
特定字符,简单字符。
mark:
mark:
mark:
sed -g 's/false/true/' name.txt ----将文件中的false替换为true
ifconfig en33 | sed -n '/inet /p' | sed 's/inet.*r://' | sed 's/B.*$//' ---图二案例答案
mark:
nl | name.txt sed '1,5a ------' 在1-5行前增加虚线
nl | name.txt sed '1,5i ------' 在1-5行前插入虚线
nl | name.txt sed '1,5c ------' 讲1-5行替换为虚线,作为整体替换
nl | name.txt sed '1,5d ' 删除1-5行
sed '$a \ port52113 \n permitrootlogin no ' ssh_config ----图二案例答案
sed '/^$/d' name.txt ---图三案例答案
sed -n 'Error/p' name.txt ---图四案例答案
mark:
sed -n 'p' name.txt ---打印name.txt文件内容
sed--行定位:
定位一行: x;
sed -n '10' name.txt ---选择文件中的第10行
nl name.txt | sed -n '10p' ---选择并打印文件中的第10行
定位几行: x,y; /pattern/,x
nl name.txt | sed -n '10,20p' ---选择并打印文件中的第10-20行记录
定位间隔行:nl name.txt | sed -n '1~2p' ---从第一行开始中间间隔2行进行输出打印
sed mark:
mark:
mark:
mark:
Mark:
nl passwd | sed -n '10p' 打印第10行
nl passwd | sed -n '/mooc/p' passwd 打印有mooc的这一行
nl passwd | sed -n '10,20p' 打印第10-20行
nl passwd | sed -n '/operator/,/liudan/p' ;正则
取反 nl passwd | sed -n '10!p'
间隔行输出 nl passwd | sed -n '1~2p' 输出1 3 5 7 9 11…………行
打印10-20行,
nl passwd | sed -n '10,20p'
sed使用格式
命令行格式
$ sed [options] 'command' file(s)
------------------------------
脚本格式
$sed -f scriptfile file(s)
正则表达式总结
匹配15位或18位身份证号(支持带x的)
grep '^[1-9]\([0-9]\{13\}\|[0-9]\{16\}\)[0-9xX]' qq.txt
匹配4-10位的qq号码:
grep '^[0-9]\{4,10\}$' qq.txt
重复的表示:* + ? { ,}
逻辑的表示: |