请问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

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/25 15:34:55
请问linux下sed这句话是什么含义?sed-n-e''/^.\{40\}[0-9]\{16\}.*/p''$1|awk''BEGIN{i=1}{i=i*(-1);if(i==-1)printf$0;el

请问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
请问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

请问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去掉