linux sed

sed -n "/query/p" 2017-04-07.log |awk -F "," '{print $2}'| awk -F " " '{ if($1==8){print $9}}'


sed命令的语法格式:

sed的命令格式: sed [option] 'sed command'filename

sed的脚本格式:sed [option] -f 'sed script'filename

sed命令的选项(option):

-n :只打印模式匹配的行

-e :直接在命令行模式上进行sed动作编辑,此为默认选项

-f :将sed的动作写在一个文件内,用–f filename 执行filename内的sed动作

-r :支持扩展表达式

-i :直接修改文件内容

sed在文件中查询文本的方式:

1)使用行号,可以是一个简单数字,或是一个行号范围

x                                   x为行号

x,y                                表示行号从x到y

/pattern                         查询包含模式的行

/pattern /pattern            查询包含两个模式的行

pattern/,x                      在给定行号上查询包含模式的行

x,/pattern/                     通过行号和模式查询匹配的行

x,y!                                查询不包含指定行号x和y的行


linux sed_第1张图片
linux sed_第2张图片
linux sed_第3张图片

sed -i  "s/^@//g"  filename  #原地操作原文件,进行替换

sed s/a/A/3 从标准输入中读取文本,将文本中含有的a的第三列替换为A


sed  ' s/^192.168.0.1/&localhost/ '   example-----&符号表示替换换字符串中被找到的部份。所有以192.168.0.1开头的行都会被替换成它自已加 localhost,变成192.168.0.1localhost。

$ sed -n   ' s/\(love\)able/\1rs/p  '   example-----love被标记为1,所有loveable会被替换成lovers,而且替换的行会被打印出来。

linux sed_第4张图片

你可能感兴趣的:(linux sed)