linux 的sed命令解释 sed ':t;N;s/\n/,/;b t' 将换行符换成逗号 实现的功能是吧换行符换成逗号了,自己试验过. 求解释,:t N b t 都是什么意思??? :t 定义label "t" b t 转到label "t" 继续执行 N 先读入一行到sed的模板空间,加个换行符(\n),再向sed模板空间追加下一行(之后sed 对模板空间中的内容执行s/\n/,/替换,并显示替换后的内容)
windows 默认换行符为 \r\n; unix默认换行符为 \n; 所以当win下编辑的脚本在linux下显示末尾多了^M: 换行符修改为同一的unix格式脚本如下: def run(path,file): for file in files: file = path+'\\'+file f = open(file,'r') result = f.read() print result result = result.replace(r'\r\n',r'\n') f.close() # 需要
假设 str="a,b,c,d" echo ${str} | sed "s/,/\n/g" 输出: a b c d echo ${str} | sed "s/,/\n/g" | sed "s/\n/,/g" 输出: a b c d 没有匹配到\n换行符 这是因为sed 模式是以\n换行符作为行的结束标记的.它没有办法匹配到\n再替换 解决方法: echo ${str} | sed "s/,/\n/g" |