草庐IT

regex_replace

全部标签

regex - 在 Linux 上查找名称中包含非法 Windows 字符的文件

我的Linux机器上有一个项目,其中包含的文件包含在Windows中被视为非法/保留的字符(http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx)。该项目在多个文件夹中有超过10,000个文件,我将确定这些文件的路径。我可以find.-name"*\?*"对于每个非法/保留字符,但是有没有更简单的方法来查找包含:"/\|?*的所有文件?一旦确定,我想从每个文件中删除所有此类字符。 最佳答案 这个findone-liner应该适合你:find.-name"*[

regex - 在 Linux 上查找名称中包含非法 Windows 字符的文件

我的Linux机器上有一个项目,其中包含的文件包含在Windows中被视为非法/保留的字符(http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx)。该项目在多个文件夹中有超过10,000个文件,我将确定这些文件的路径。我可以find.-name"*\?*"对于每个非法/保留字符,但是有没有更简单的方法来查找包含:"/\|?*的所有文件?一旦确定,我想从每个文件中删除所有此类字符。 最佳答案 这个findone-liner应该适合你:find.-name"*[

regex - 在 bash 中使用 SED 打印 RegEx 匹配项

我有一个XML文件,该文件由一行组成。我想做的是通过Putty从文件中提取“finalNumber”属性值。而不是必须下载副本并使用Notepad++进行搜索。我建立了一个正则表达式,并在On-lineTool上测试过,并尝试在sed命令中使用它duplicategrepfunctionality.该命令运行但不返回任何内容。正则表达式:(?sed命令(不返回任何内容,预期为28,请参阅文件提取):sed-n'/(?文件提取:...argo:finalizedDate="2012-02-09T00:00:00.000Z"argo:finalNumber="28"argo:revenue

regex - 在 bash 中使用 SED 打印 RegEx 匹配项

我有一个XML文件,该文件由一行组成。我想做的是通过Putty从文件中提取“finalNumber”属性值。而不是必须下载副本并使用Notepad++进行搜索。我建立了一个正则表达式,并在On-lineTool上测试过,并尝试在sed命令中使用它duplicategrepfunctionality.该命令运行但不返回任何内容。正则表达式:(?sed命令(不返回任何内容,预期为28,请参阅文件提取):sed-n'/(?文件提取:...argo:finalizedDate="2012-02-09T00:00:00.000Z"argo:finalNumber="28"argo:revenue

regex - Linux - 只在一行中找到一个模式,而不是整行

我想使用正则表达式在文件中查找模式。该模式可能位于一条线的中间,但我不想要整条线。我试过grep-apatternfile但这会返回包含正则表达式的整行。以下是我正在尝试做的一个例子。有谁知道这样做的方法吗?例子:输入:AAAAAAAAAAAAAXxXxXxXxBananasyYyYyYyYBBBBBBBCCCCCC正则表达式:Xx.*yY输出:XxXxXxXxBananasyYyYyYyY 最佳答案 你很接近,你需要-o标志grep-o'Xx.*yY' 关于regex-Linux-只在

regex - Linux - 只在一行中找到一个模式,而不是整行

我想使用正则表达式在文件中查找模式。该模式可能位于一条线的中间,但我不想要整条线。我试过grep-apatternfile但这会返回包含正则表达式的整行。以下是我正在尝试做的一个例子。有谁知道这样做的方法吗?例子:输入:AAAAAAAAAAAAAXxXxXxXxBananasyYyYyYyYBBBBBBBCCCCCC正则表达式:Xx.*yY输出:XxXxXxXxBananasyYyYyYyY 最佳答案 你很接近,你需要-o标志grep-o'Xx.*yY' 关于regex-Linux-只在

regex - Bash 正则表达式匹配不起作用

这个问题在这里已经有了答案:BashRegularExpression--Can'tseemtomatchanyof\s\S\d\D\w\Wetc(6个答案)关闭4年前。所以我有这个功能functiontest(){localoutput="CMD[hahahhaa]"if[["$output"=~"/CMD\[.*?\]/"]];thenecho"LOOL"elseecho"$output"fi;}但是在命令行中执行测试将输出$output而不是“LOOL”,尽管模式应该匹配$output...我做错了什么?

regex - Bash 正则表达式匹配不起作用

这个问题在这里已经有了答案:BashRegularExpression--Can'tseemtomatchanyof\s\S\d\D\w\Wetc(6个答案)关闭4年前。所以我有这个功能functiontest(){localoutput="CMD[hahahhaa]"if[["$output"=~"/CMD\[.*?\]/"]];thenecho"LOOL"elseecho"$output"fi;}但是在命令行中执行测试将输出$output而不是“LOOL”,尽管模式应该匹配$output...我做错了什么?

regex - 使用 awk 替换正则表达式模式

我正在尝试编写一个正则表达式来用空格替换文件中存在的一个或多个“+”符号。我尝试了以下方法:echoThis++++this+++is+not++done|awk'{sub(/\++/,"");print}'Thisthis+++is+not++done预期:Thisthisisnotdone知道为什么这不起作用吗? 最佳答案 使用gsub进行全局替换:echoThis++++this+++is+not++done|awk'{gsub(/\++/,"");}1'sub函数仅替换第一个匹配项,要替换所有匹配项,请使用gsub。

regex - 使用 awk 替换正则表达式模式

我正在尝试编写一个正则表达式来用空格替换文件中存在的一个或多个“+”符号。我尝试了以下方法:echoThis++++this+++is+not++done|awk'{sub(/\++/,"");print}'Thisthis+++is+not++done预期:Thisthisisnotdone知道为什么这不起作用吗? 最佳答案 使用gsub进行全局替换:echoThis++++this+++is+not++done|awk'{gsub(/\++/,"");}1'sub函数仅替换第一个匹配项,要替换所有匹配项,请使用gsub。