草庐IT

regex-compat

全部标签

regex - linux 查找名称中包含可选字符的文件

假设我有两个文件:ac和abc。我想找到一个正则表达式来匹配这两个文件。通常我希望下面的正则表达式能工作,但它从来没有工作过:find./-nameab?c我试过转义或不转义问号,这似乎从来没有奏效。通常在我找到的正则表达式文档中;?意思是:previouscharacterrepeated0or1times,但是find似乎不明白这一点。我在两个不同的查找版本上尝试过:GNU查找版本4.2.31和查找(GNUfindutils)4.6.0PS:这适用于*,但我特别想只匹配一个可选字符。find./-namea*c给予./ac./abc 最佳答案

regex - Bash - 如何计算指令数?

我有一些*.s汇编文件。我想数一数它们包含多少条指令。例如,要计算我执行的所有mul指令:cat*.s|grep-P'\t'"mul"|wc-l它为我提供了所有mul指令的复合编号。我想要这样的输出:mul:893add:12054sub:2356...问题是没有目标平台支持的指令表。每个目标平台都有不同的指令集。支持的指令必须从现有的汇编文件中推导出来。我可以在没有Perl/Pythonfoundry的情况下仅在Bash中完成吗? 最佳答案 你可以像这样得到它们:grep-hP'^[\t]+[a-z]*'*.s|sed's/^[\

regex - 重用命令在 bash 中进行管道传输

我使用以下命令缩进配置脚本的输出:./configure|sed"s/^//"现在我想重用管道后面的部分,所以我不用写了./configure|sed"s/^//"make|sed"s/^//"makeinstall|sed"s/^//"我试过将sed放在这样的变量中:indent=sed"s/^//"然后做./configure|indent但这没有用-我怎样才能做到这一点? 最佳答案 使用一个BASH数组来存放sed命令:indent=(sed"s/^//")然后使用:./configure|"${indent[@]}"make

regex - 压缩 awk/sed 管道命令

我有一个丑陋的命令,它从传感器获取输出并去除不需要的字符和小数位,然后用带有尾随华氏符号的awk打印它。命令看起来像这样:sensors-f|awk'/temp1/{print$2}'|sed's/+//g'|awk'{sub(/\..*/,"");print$1"°F"}'此命令的输出如下所示。101°F命令有点乱,但它完成了工作,考虑到我对awk和sed的有限了解,这是值得一提的。我希望有更多知识的人可以告诉我如何压缩这个命令,因为我不清楚如何运行带有搜索模式的awk,然后是替换,然后打印。任何帮助,将不胜感激。谢谢!编辑:按要求输出sensors-f。acpitz-virtual

regex - rsync --exclude-from 'list' 文件不工作

我正在尝试使用rsync来完成从远程服务器到本地计算机的未完成传输rsync-auser@domain.com:~/source//dest/其中/dest/是部分完成传输的位置。但是,由于带宽问题,我需要在没有/dest/副本的另一台机器上运行rsync到/tmp_dest/,然后我可以从那里稍后将/tmp_dest/移动到/dest/到目前为止,我提出的解决方案是使用rync的--exclude-from选项,使用包含来自/dest/的完整文件列表的文件.命令看起来像这样rsync-a--exclude-from'list.txt'user@domain.com:~/source/

regex - linux sed命令不改变目标文件

使用我的shell脚本,当我运行./Test1helloresult.它应该占用hello作为标准输入,结果作为标准输出。shell应该删除之前的所有空格,,和abc所以,我这样写脚本tr-d[:blank:]"$1|sed-r's///g'>$2sed-r's///g'$2sed-r's/abc//g'$2但是,当我运行这条命令时,结果文件的内容与hello文件的内容完全一样(唯一的区别是去掉了空格)文件内容:hellohellohelloabcabc我如何获得sed将更改应用到目标文件? 最佳答案 如果要存储来自sed的更改返回

regex - 外壳脚本 : search and replace over multiple lines

我正在寻找一种通过shell脚本搜索和替换多行的方法。这就是我想要做的:source:[stuffbefore][stuffhere,possiblymultiplelines.[stuffafter]target:[stuffbefore][newcontent][stuffafter]简而言之,我想删除评论和它们之间的所有内容,并替换为一些新内容。基本上,我想在多行上执行一个简单的sed命令,如果可能的话,只使用一些基本的*nix工具,不需要额外的脚本语言。 最佳答案 如果您只需要匹配完整的行,那么您可以使用awk。像这样的东西

regex - 像 "regexec"这样的正则表达式函数在 libc 版本 2.2.5 中是线程安全的吗?

我读过libc中的正则表达式函数应该是线程安全的,但我也读过在早期版本中情况并非如此。我现在必须在具有旧libc版本2.2.5的嵌入式系统上工作。所以我不太确定像“regexec”这样的函数是线程安全的还是应该由互斥体保护?如果有人对此有任何线索,我将不胜感激。我也不太确定应该针对什么进行测试以验证这些函数的线程安全性。 最佳答案 我在最近的libc版本(2.13)的NEWS文件中搜索了regex关键字。没有关于线程安全的内容,但有以下注意事项:Version2.3...IsamuHasegawacontributedacomple

regex - 从文件名中提取信息以进行自动复制

这是我在StackOverflow上的第一篇文章。要温柔。:)我有一个Linux服务器,我可以将电视节目下载到该服务器上,然后手动将文件移动到它们各自的文件夹中,以供我的Plex服务器使用。我想自动化这个过程。我已经做到了以下。文件命名约定Show.Name.SeasonNumberEpisodeNumber.HDTV.X264.etc...Example:Almost.Human.S01E01.720p.HDTV.X264.mkv注意:节目名称可以有不同的长度,带有.在名称中的每个单词之间。我能够从文件名中提取显示文件夹名称。#!/bin/bashreadonlyFILEPATH=~

regex - 计算正则表达式的唯一出现次数

我有一个maillog服务器的数量,我想计算每个用户每小时发送多少封电子邮件。目前我删除了所有我不需要的信息,但我无法统计每个唯一用户发送了多少封电子邮件。到目前为止我写的是:awk'{print$3,$7;}'./maillog|sed'/from/!d'|sed's/:[0-9][0-9]:[0-9][0-9]/:00/g'|sed's/from=output.txt主要问题是(我相信)我在同一小时内多次找到同一个用户(我不希望这样)。Here是我需要得到的。请注意,我需要得到的只是一个示例,而不是我应该拥有的正确输出。如果你在我给你的文件上执行我写的脚本,你会在同一小时内获得2次