草庐IT

REGEX_EXTRACT

全部标签

regex - bash 脚本中使用的以下 sed 行的含义

我最近在bash脚本中遇到以下行sed-e:a-e'/^\n*$/{$d;N;ba'-e'}'|sed-e'$s/,$/\n/'管道第一部分的输入由另一个管道给出,输入的形式为1,2.3,2.453,23.5345, 最佳答案 表达的很到位。让我们试着把它拆开。前几个命令是sed-einvokes`sed`withthe`-e`flag:"expressionfollows":aalabel-canbeusedwithabranchstatement(think"goto")'/\n*$/anynumberofcarriageret

regex - 仅打印以特定数值结尾的行

我有一个由空格分隔符和两列组成的CSV文件。我需要grep第一列中以06、12、18或00结尾的所有行。文件.txt201712110622.9201712110919.4201712111217.220171211159999.020171211189999.020171211219999.020171212009999.020171212039999.0201712120616.3201712120913.120171212128.820171212158.1201712121810.520171212218.6尝试的代码:egrep'(00|06|12|18)$'file.txt

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