作业帮 > 综合 > 作业

请问linux下sed这句话是什么含义?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/09 00:00:32
请问linux下sed这句话是什么含义?
sed -n -e '/^.\{40\}[0-9]\{16\}.*/p' $1 | awk 'BEGIN{i=1}{i=i*(-1); if (i==-1) printf $0;else print $0}' | sed -e 's/^M/ /g
1、sed中的-n和-e参数就不多说,一搜很多
2、'/^.\{40\}[0-9]\{16\}.*/p' 正则表达式,匹配以.开头且前面有40个.符号,后面接16个任意阿拉伯数字,在接.符号,再接任意字符
3、$1,带入的第一个参数,应该是文件名
4、awk 'BEGIN{i=1}{i=i*(-1); if (i==-1) printf $0;else print $0}'
开始变量i赋予1,i=i*(-1),如果i==-1则输出SED匹配的所有行,否则也输出SED匹配的所有行
5、sed -e 's/^M/ /g' 把文件中的^M去掉