1 Unix linux unix 23 2 linux Linux 34 3 linuxunix UnixLinux linux /bin/bash CentOS Linux OS Linux is free and opensource operating system
9) 如何以不区分大小写来搜索与替换模式
大家都知道,Linux 是区分大小写的。为了与不区分大小写的模式匹配,使用 I 标志。
1 2 3 4 5 6 7
# sed 's/unix/linux/gI' sed-test.txt
1 linux linux linux 23 2 linux Linux 34 3 linuxlinux linuxLinux linux /bin/bash CentOS Linux OS Linux is free and opensource operating system
10) 如何查找和替换包含分隔符的字符串
当你搜索和替换含分隔符的字符串时,我们需要用反斜杠 \ 来取消转义。
在这个例子中,我们将用 /usr/bin/fish 来替换 /bin/bash。
1 2 3 4 5 6 7
# sed 's/\/bin\/bash/\/usr\/bin\/fish/g' sed-test.txt
1Unix unix unix 23 2 linux Linux34 3 linuxunix UnixLinux linux /usr/bin/fish CentOSLinuxOS Linuxis free and opensource operating system
上述 sed 命令按预期工作,但它看起来来很糟糕。 为了简化,大部分的人会用竖线 | 作为正则表达式的定位符。 所以,我建议你用它。
1 2 3 4 5 6 7
# sed 's|/bin/bash|/usr/bin/fish/|g' sed-test.txt
1Unix unix unix 23 2 linux Linux34 3 linuxunix UnixLinux linux /usr/bin/fish/CentOSLinuxOS Linuxis free and opensource operating system
11) 如何以给定的模式来查找和替换数字
类似地,数字可以用模式来代替。下面的 sed 命令以 [0-9] 替换所有数字为 number。
1 2 3 4 5 6 7
# sed 's/[0-9]/number/g' sed-test.txt
number Unix unix unix numbernumber number linux Linux numbernumber number linuxunix UnixLinux linux /bin/bash CentOS Linux OS Linux is free and opensource operating system
12) 如何用模式仅查找和替换两个数字
如果你想用模式来代替两位数字,使用下面的 sed 命令。
1 2 3 4 5 6 7
# sed 's/\b[0-9]\{2\}\b/number/g' sed-test.txt
1 Unix unix unix number 2 linux Linux number 3 linuxunix UnixLinux linux /bin/bash CentOS Linux OS Linux is free and opensource operating system