一、符号意义
1.1 ^
在[]内表示否,[]外表示行首
1.2 $
表示行尾
找空白行 grep -n '^$' xxx.txt
1.3 .
表示绝对有一个任意字符
1.4 *
表示拥有0个及以上的前一个字符
找g开头g结尾 grep -n 'g.*g'
1.5 {}
限定连续字符范围
- gg中间有两个o的
grep -n 'go\{2\}g'
- gg中间有2-5个o的
grep -n 'go\{2,5\}'
- gg中间有2-∞个o的
grep -n 'go\{2,\}'
二、sed ['acdips']
管道命令, 增加替换删除插入打印替换
对命令行中列出的内容进行操作,而非删除文件内容
- 删除: 'x,xd' 删除x-x行
sed '2d'
删除第二行
sed '2,$d'
删除第二行至最后一行 - 新增 ‘xa xxxxxx’ 在x行后面一行,新增xxxxx内容
- 插入 'xi xxxxxx' 在x行前面一行,新增xxxxx内容
sed '2a Drink tea \
drink bear'
每行在末尾加入\,实现多行插入 - 替换 'x,xc xxxxx' 将x,x行替换为内容xxxxx
- 打印 'x,xp'
sed '5,7p'
打印第五行到第七行 - 部分数据的替换 's/要被替换的字符/新字符/g'
sed 's/*netmask.*$//g'
三、awk
3.1 拥有的成员
- $0123...
$0 代表文件的所有列
$123.. 代表该行第i个字段 - NF、NR、FS
NF 每一行拥有的字段总数
NR 目前awk所处理的是第几行数据
FS 目前分隔字符
awk '{print $1 "\t lines: " NR "\t colums : " NF}'
计算以下数据之和,并打印
NAME 1st 2nd 3th
a 23000 24000 25000
awk 'NR==1 {printf "%10s %10s %10s %10s %10s\n",$1,$2.$3,$4,"total"}
NR>=2 {total=$2+$3+$4
printf "%10s %10d %10d %10d %10.2f\n",$1,$2,$3,$4,total}'
网友评论