拜托,正则表达式你都不懂怎么跟你解释呢?
sed 's/<\/ERR>//;s/
//;s/ //g;s/ //g;/^$/d' $1
第一句执行了6条替换命令
s/XXX/xxx/
分别表示把
换行删除,空格全部删除。空行删除。
第二句:
sed -e :a -e '$!N;s/\n
就复杂了,不好解释,解释这个你自己得知道sed的原理。我猜你是不知道所以不解释。
这个东西能写一本书啊。 你去看这本书吧:
《 Sed与Awk (中文版) 》
如果是问具体的命令什么意思的话,建议 lz 找教材系统学习,如果只是想了解脚本的意思,我可以加一下注释。下面按管道分行处理,最后的处理就是所有各行的处理的综合:
----------------------------------------------------------------------
$1
-> 输入文件
----------------------------------------------------------------------
sed 's/<\/ERR>//;s/
-> 删除
----------------------------------------------------------------------
sed -e :a -e '$!N;s/\n
-> 替换另起一行的
----------------------------------------------------------------------
sed -e :a -e '$!N;s/\n
-> 同上,只是处理的标签不一样
----------------------------------------------------------------------
sed -e :a -e '$!N;s/\n
-> 同上,只是处理的标签不一样
----------------------------------------------------------------------
sed -e :a -e '$!N;s/\n
-> 同上,只是处理的标签不一样
----------------------------------------------------------------------
grep '^
-> 过滤出以
----------------------------------------------------------------------
sed 's/
-> 删除掉
----------------------------------------------------------------------
$2
-> 处理后的结果输出到 $2 文件中存放
----------------------------------------------------------------------