本文介绍了Sed在命令行中不起作用,但是在线测试regex101中的正则表达式有效的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 我有一个字符串 2017年7月20日,11:03:37.620 fc384c3d-9a75-459d-ba92-99069db0e7bf 我需要删除从行首到UUID子字符串的所有内容(这是一个制表符,\ 我的正则表达式如下: ^ \s * July(。*)\t 当我在regex101都能正常运行: https://regex101.com/r/eZ1gT7/1077 但是,当我将其插入sed命令时,它不会做任何替换: less PensionQuery.txt | sed -e's / ^ \s * July(。*)\t //' 其中PensionQuery.txt是一个充满与上述相似的行的文件。因此,以上命令只是吐出未经修改的文件内容。 我的 sed 命令是否错误? 任何想法吗?解决方案正则表达式正确,您尝试 sed 不是 >使用-regexp扩展 echo -e $'2017年7月20日,11:03:37.620\tfc384c3d-9a75-459d-ba92-99069db0e7bf'| | sed -E's / ^ \s * July(。*)\t //' fc384c3d-9a75-459d-ba92-99069db0e7bf 还可以在基本(BRE)和扩展(ERE)正则表达式 I have a string like July 20th 2017, 11:03:37.620 fc384c3d-9a75-459d-ba92-99069db0e7bfI need to remove everything from the beginning of the line till the UUID substring (it's a tab, \t just before the UUID).My regex looks like that:^\s*July(.*)\tWhen I test it in regex101 it all works beatufully: https://regex101.com/r/eZ1gT7/1077However, when I plonk that into a sed command it doesn't do any substitution:less pensionQuery.txt | sed -e 's/^\s*July(.*)\t//' where pensionQuery.txt is a file full of the lines similar to the above. So the command above simply spits out unmodified file contnent. Is my sed command wrong?Any ideas? 解决方案 The regex is right, you are not trying sed with --regexp-extendedecho -e $'July 20th 2017, 11:03:37.620\tfc384c3d-9a75-459d-ba92-99069db0e7bf' | sed -E 's/^\s*July(.*)\t//'fc384c3d-9a75-459d-ba92-99069db0e7bfAlso a simple read-up on Basic (BRE) and extended (ERE) regular expression 这篇关于Sed在命令行中不起作用,但是在线测试regex101中的正则表达式有效的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
10-29 00:21