sed替换文本
[root@localhost.localdomain home]#cat test ### @2=1492785988 /* INT meta=0 nullable=0 is_null=0 */ ### @3=3598278656 /* LONGINT meta=0 nullable=0 is_null=0 */
要将test文件中@2=1492785988内容保留,首位的内容都去掉
[root@localhost.localdomain home]#sed -i.bak '/^###/{s/^### *//;s#/\*.*\*/##;}' test
因为有特殊字符*,需要脱意,/\*.*\*/ 这段的意思就是匹配/* 这里是正则.* 贪婪匹配 */ 然后替换成空
这里最大的亮点是-i.bak 这个用法,以前一直只知道-i参数直接修改源文件,但-i.bak 可以备份
执行后,发现会多了一个test.bak备份文件
[root@localhost.localdomain home]#ls test test.bak
test.bak文件即为源文件
========================================
补充:
sed --help
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if SUFFIX supplied)
发现参数,后面有[SUFFIX],表示后缀,即i.bak,支持备份文件
或者写成
sed --in-place=.bak '/^###/{s/^### *//;s#/\*.*\*/##;}' test
测试成功
"世界上只有一种真正的英雄主义,就是认清了生活的真相后,还依然执着地热爱它。"
——罗曼·罗兰