shell中sed和grep匹配任意空格或制表符的区别

场景:

*   soft 	 nofile 630000
*	 hard   nofile 654300

grep 匹配如上文本,由于最后一列数字是可变的,并且每列之间可能存在任意个空格或制表符

grep   -E  '^\*[[:space:]]+soft[[:space:]]+nofile|^\*[[:space:]]+hard[[:space:]]+nofile'  /etc/security/limits.conf

将匹配的结果sed 替换最后一列数字

sed -n 's/\*[[:space:]]\+soft[[:space:]]\+nofile.*/\* soft nofile 654350/p;s/\*[[:space:]]\+hard[[:space:]]\+nofile.*/\* hard nofile 654350/p' /etc/security/limits.conf

区别,在匹配任意个数空格或制表符时,grep 的'+' 不需要转义,sed 需要转义

posted @ 2020-12-22 19:03  rockstics  阅读(2313)  评论(0编辑  收藏  举报