作业帮 > 综合 > 作业

关于sed修改特定行的问题

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/10 19:40:48
关于sed修改特定行的问题
比方a.log的内容如下:
a 0.25 pvps
27/Dec/2007:17:26 0.35 pvps
现在利用sed命令把a.log中的以“27/Dec/2007:17:26”开头的行(第二行)的第二列(0.35)的值替换成0.45
关于sed修改特定行的问题
sed -i 's#\(27/Dec/2007:17:26[[:blank:]]\)\S\S*\([[:blank:]]..*\)#\10.45\2#' a.log

说明:
1)将不变的部分(包括空格)放入带反斜杠的一对括号 \( \) 中.
\(27/Dec/2007:17:26[[:blank:]]\) 对应于后面的 \1
\([[:blank:]]..*\) 对应于后面的 \2
2)正则表达式中的一些常用符号:
[[:space:]] 空格
[[:blank:]] 空格或制表键
[[:graph:]] 任何可视字符(无空格)
\S:用于匹配除单个空格符之外的所有字符
当然,上述命令中的[[:space:]]也可以直接用空格,\S也可以换成[[:graph:]].