我正在尝试使用我在工作中继承的一些脚本来解决问题,并想看看是否有人可以破译这个表达式试图完成的内容:
|sed -e 's#\(.\{36\}\)\(.*\)#\1|\2#g' | sed -e 's#\(.\{49\}\)\(.*\)#\1|\2#g'
我试图通过参考手册和谷歌对此进行逆向工程,但没有成功。
谢谢!
我正在尝试使用我在工作中继承的一些脚本来解决问题,并想看看是否有人可以破译这个表达式试图完成的内容:
|sed -e 's#\(.\{36\}\)\(.*\)#\1|\2#g' | sed -e 's#\(.\{49\}\)\(.*\)#\1|\2#g'
我试图通过参考手册和谷歌对此进行逆向工程,但没有成功。
谢谢!
它的意思是
在每行的前 36 个字符后插入“|”
在该输出中前 49 个字符后插入一个“|”
如果该行包含至少 36 个字符或 49 个字符,则所有这些插入都会完成。
你可以做的更短,这样:
| sed ' s:^.\{36\}:&|:; s:^.\{49\}:&|: '
这是两个 sed 语句。第一个在该行的前 36 个字符之后插入一个竖线字符 ('|'),第二个在前 49 个字符之后插入一个竖线字符(包括它在第一步中插入的竖线)。
据我所知,这些可以写得更简洁,效果相同:
|sed -e 's#\(.\{36\}\)#\1|#' | sed -e 's#\(.\{49\}\)#\1|#'