草庐IT

regex - 当名称不包含某些单词时删除文件

我正在使用Linux并打算使用shell删除一些文件。我的文件夹中有一些文件,有些文件名包含“good”一词,有些则没有。例如:ssgood.wmvssbad.wmvgoodboy.wmvcuteboy.wmv我想删除名称中不包含“good”的文件,所以剩下的文件是:ssgood.wmvgoodboy.wmv如何在shell中使用rm来做到这一点?我尝试使用rm-f*[!good].*但它不起作用。非常感谢! 最佳答案 这个命令应该做你需要的:ls-1|grep-v'good'|xargsrm-f它可能会比其他命令运行得更快,因为它

regex - 解析 ps 的 "etime"输出并将其转换为秒

这些是psh-eoetime可能的输出格式21-18:26:3015:28:3748:1400:01如何将它们解析成秒?请假设天部分至少为3位数字,因为我不知道它可以有多长。输出将被egreped到只有一行,因此不需要循环。 最佳答案 另一个bash解决方案,适用于任意数量的字段:ps-p$pid-oetime=|tr'-'':'|awk-F:'{total=0;m=1;}{for(i=0;i=2?24:60}}{printtotal}'解释:替换-至:这样字符串就变成了1:2:3:4代替'1-2:3:4',总计为0,乘数为1拆分为

regex - 解析 ps 的 "etime"输出并将其转换为秒

这些是psh-eoetime可能的输出格式21-18:26:3015:28:3748:1400:01如何将它们解析成秒?请假设天部分至少为3位数字,因为我不知道它可以有多长。输出将被egreped到只有一行,因此不需要循环。 最佳答案 另一个bash解决方案,适用于任意数量的字段:ps-p$pid-oetime=|tr'-'':'|awk-F:'{total=0;m=1;}{for(i=0;i=2?24:60}}{printtotal}'解释:替换-至:这样字符串就变成了1:2:3:4代替'1-2:3:4',总计为0,乘数为1拆分为

regex - 使用 grep 仅匹配一行中的模式一次

我有这个:echo12345|grep-o'[[:digit:]]\{1,4\}'这给出了这个:12345我明白发生了什么。如何阻止grep在1次成功匹配后尝试继续匹配?如何获取唯一1234 最佳答案 你是想让grep停止匹配还是只关心第一个匹配。你可以使用head如果后者是真的...`grepstuff|head-n1`Grep是基于行的实用程序,因此-m1标志告诉grep在它匹配第一行line后停止,这在实践中与head结合使用时非常好。 关于regex-使用grep仅匹配一行中的模

regex - 使用 grep 仅匹配一行中的模式一次

我有这个:echo12345|grep-o'[[:digit:]]\{1,4\}'这给出了这个:12345我明白发生了什么。如何阻止grep在1次成功匹配后尝试继续匹配?如何获取唯一1234 最佳答案 你是想让grep停止匹配还是只关心第一个匹配。你可以使用head如果后者是真的...`grepstuff|head-n1`Grep是基于行的实用程序,因此-m1标志告诉grep在它匹配第一行line后停止,这在实践中与head结合使用时非常好。 关于regex-使用grep仅匹配一行中的模

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-只在