sed与awk

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

你可能感兴趣的:(sed与awk)