sed命令替换换行符
问题
极路由云台的插件状态显示是html,所以当插件需要返回log时需要将换行符替换为<br>标记。
思路
sed读取一行时,会先把换行符去掉,处理完后再添加上,所以很难用sed本身替换掉换行符。
所以思路是用tr将换行符替换为一个特殊的符号,之后再使用sed将这一特殊的字符替换为<br>即可。
代码
tail -10 /tmp/redial.log | tr '\n' '+' | sed 's#+#<br>#g'
将log的后10行中的换行符替换为
'\n' -> '+' -> '<br>'
误区
tr '\n' '<br>'
并不会将换行符替换为<br>,只会将换行符替换为<。
tr只会替换一个字符。
思考
echo a1b2c3 | tr 'abc' '123'
这个输出什么呢?
EOF
评论框君很顽皮,需要科学上网才能看到哦!~
关注微信公众号(MarIxs)也能联系到我哦!