sed 选项 动作 filename
选项-n
动作:
a 新增往下增加
i 往上一行添加
c 替换,1,5c会将这一块区域整个替换,不会每行都替换
d 删除
p 输出
s 替换经常配合正则进行操作
w 写入 sed'w 要被写入内容的文件(目标文件)' 读取内容的文件(源文件) 只要是用w向文件中进行写入就会将目标文件之前的内容全部替换
高级操作:
| 使用管道符配合其他命令
如:cat /etc/passwd | sed -c tast.txt
{} 可以让sed执行多个动作,只是动作之间要用":" 分号隔开
& 替换 相当于占位符的作用 就是我们s/查询条件/ 查询到的内容,可以在s/查询条件/要替换的内容进行使用,实现追加的效果
\u转成大写可以配合我们的&来实现将匹配内容转成大写的操作
让大家在passwd文件中获取username,userid,groupID进行演示
()分组功能
s/([a-z_-]+):x ([0-9]+):.*$/user: userid:zxxxx groupid:xxx/
sed 's/\([a-z0-9_-]\+\):x:\([0-9]\+\);\([0-9]\+\):/*$/user :\1 /' passed
首先分组的序号是从1开始的并且是按照从左到右的顺序排的,要获取使用\分组的序号来进行获取,例如\1就是个占位符
awk
行读取与sed 同为行读取
awk的基本格式:
awl options 选项 'command' file
NR 行号
NF 列数
$1,$n 同义
-F 设置分隔符,默认情况下是使用" "空格开进行切割
选择输出方式
print printf
要使用正则:~/正则匹配规则/
如果用!~就是对正则匹配内容取非
awk的扩展格式
awk options选项 'BFGIN command END{ }'file