标签:语法 inf aaa roo 数学 || uid 输出 精确
sed [options] ‘{command}[flags]‘ [filename]
{}是必须有,[]可选
-r 使用扩展的正则表达式
-n 只打印缓存中的内容,不打印文本内容
-e 执行多个命令
-f 执行文件中的命令
-i 修改原文件
-i.xxxx 修改源文件并且备份源文件
a 在匹配后添加
i 在匹配前添加
p 打印
d 删除
s 查找替换
c 更改
y 转换 N D P
sed ‘a\hello world‘ data 在每行后面添加hello world
sed ‘3a\hello world‘ data 在第3行后面添加hello world
sed ‘2,4a\hello world‘ data 在第2-4行后面添加hello world
sed ‘/3 the/a\hello world‘ data 先匹配"3 the"的行,然后在这行后面添加hello world,//是匹配模式
sed ‘i\hello world‘ data 在每行前面添加hello world
sed ‘3i\hello world‘ data 在第3行前面添加hello world
sed ‘2,4i\hello world‘ data 在第2-4行前面添加hello world
sed ‘/3 the/i\hello world‘ data 先匹配"3 the"的行,然后在这行前面添加hello world,//是匹配模式
sed ‘d‘ data 删除所有行
sed ‘3d‘ data 删除第3行
sed ‘2,4d‘ data 删除2-4行
sed ‘/3 the/d‘ data 先匹配"3 the"的行,然后删除这行//是匹配模式
sed -r ‘/(^#|#|^$)/d‘ data 删除#开头,包含#以及空行
sed ‘s/dog/cat/‘ data 把每行中dog替换成cat
sed ‘3s/dog/cat/‘ data 把第3行中dog替换成cat
sed ‘2,4s/dog/cat/‘ data 把2-4行中dog替换成cat
sed ‘/3 the/s/dog/cat/‘ data 先匹配"3 the"的行,然后把行中dog替换成cat //是匹配模式
sed ‘c\hello world‘ data 所有行改为hello world
sed ‘3c\hello world‘ data 第3行改为hello world
sed ‘2,4c\hello world‘ data 第2-4行改为hello world并且合并为一行
sed ‘/3 the/c\hello world‘ data 先匹配"3 the"的行,然后把这行改为hello world,//是匹配模式
sed ‘y/abcd/ABCD‘ data 按照字符对应关系转换
sed ‘p‘ data 打印所有行
sed ‘3p‘ data 打印第3行
sed ‘2,4p‘ data 打印2-4行
sed ‘/3 the/p‘ data 先匹配"3 the"的行,然后打印这行//是匹配模式
数字 表示新文本替换的模式
g: 表示用新文本替换现有文本的全部实例
p: 表示打印原始的内容
w filename 将替换的结果写入文件
sed ‘s/dog/cat/2‘ data 把每行中第二处dog替换成cat
sed ‘s/dog/cat/g‘ data 把每行中所有dog替换成cat
sed ‘3s/dog/cat/p‘ data 把第3每行中dog替换成cat并且打印
sed ‘3s/dog/cat/w newdata‘ data 把第3每行中dog替换成cat并且把修改的行保存在newdata文件,源文件不变
sed -e ‘s/brown/green/;s/dog/cat/‘ data
创建文件,aaa:
s/brown/green/
s/dog/cat/
sed -f aaa data
sed -n ‘$=‘ data 打印行号
awk [options] ‘[BEGIN]{program}[END]’ [file]
-F fs 指定列分割符
-f file 指定读取程序的文件名
-v var=value 定义awk程序中适用的变量和默认值
$0 表示正行文本
$1 表示行中第一个数据字段
$2 表示行中第二个数据字段
$N 表示行中第N个数据字段
$NF 表示行中最后一个数据字段
awk ‘{print $0}‘ data 打印所有列
awk ‘{print $NF}‘ data 打印最后一列
awk ‘{print $3}‘ data 打印第三列
awk ‘NR==3{print $0}‘ data 打印第3行的所有列
awk -F ":" ‘NR==1{print $1}‘ passwd 用:作为分隔符,打印第一行的第1列
awk -F ":" ‘NR==1{print $1,$3,$5}‘ passwd 用:作为分隔符,打印第一行的第1,3,5列
awk -F ":" ‘NR==1{print $1 "-" $3 "-" $5}‘ passwd 用:作为分隔符,打印第一行的第1,3,5列并且用-隔开
awk -F ":" ‘NR==1{print "account: " $1,"UID: " $3,"DESC: " $5}‘ passwd
head -2 /proc/meminfo | awk ‘NR==1{Total=$2}NR==2{Free=$2;print (Total-Free)*100/Total"%"}‘
awk ‘BEGIN{array[1]="test";array[2]=18;print array[1],array[2]}‘
赋值运算:=
比较运算:> >= == <= < !=
数学运算:+ - * / % ** ++ --
逻辑运算: && ||
匹配运算:~ !~
seq 1 10 num
awk ‘$1>=5{print $0}‘ num
awk ‘$1!=5{print $0}‘ num
awk -v ‘count=0‘ ‘BEGIN{count++;print count}‘
awk -F: ‘$1=="root"{print $0}‘ passwd 精确匹配
awk -F: ‘$1 ~ "ro"{print$0}‘ passwd 模糊匹配
FIELDWIDTHS 以空格分隔的数字列表,用空格定义每个数据字段的精确宽度
FS 输入字段分隔符号
OFS 输出字段分隔符号
RS 输入记录分隔符
ORS 输出记录分隔符
awk ‘BEGIN{FIELDWIDTHS="5 2 8"}NR==1{print $1,$2,$3}‘ /etc/passwd
awk ‘BEGIN{FS=":"}$1!~"ro"{print $0}‘ passwd
awk ‘BEGIN{FS=":";OFS="-"}$1=="root"{print $1,$3,$5}‘ /etc/passwd
awk ‘BEGIN{RS="";OFS="\n"}{print $1$,2,$3}‘ num
awk ‘BEGIN{RS="";ORS="#####"}{print $1$,2,$3}‘ num
标签:语法 inf aaa roo 数学 || uid 输出 精确
原文地址:https://www.cnblogs.com/goldtree358/p/14228772.html