草庐IT

menta-regex

全部标签

regex - sed 不使用变量

我正在尝试编译一个从Internet下载的大型项目,并且我有一个运行configure、make和makeinstall的自定义脚本。问题是我想传递一些兼容性标志,但该项目使用不识别LDFLAGS的libtool,我必须找到另一种方法来传递我的兼容性标志。所以在运行configure后的脚本中,我的代码如下所示:COMPATFLAG="-gcc-name=/usr/local/gcc-4.2.1/bin/gcc"sed-i"s/CC-shared/CC-shared${COMPATFLAG}/g"libtool${COMPATFLAG}可能会根据正在编译的平台获得不同的值,因此我无法将

regex - Sed - 删除字符串前的 x 个字符

我有一个txt文件,我想删除特定字符串之前的x个字符示例:52.451878252foo845.851878212foo98.444854655foo458.344854656foo我想删除字符串'foo'前的8个字符,以便得到这个:52.45foo845.66foo98.44foo458.66foo我应该如何使用sed命令(或其他命令)?谢谢你:) 最佳答案 给你:sed-e's/........foo/foo/g'file.txt或等效地:sed-e's/.\{8\}foo/foo/g'file.txt甚至:sed-e's/.\

regex - 如何使用 AWK 从字符串中删除所有小写字符?

请注意,我需要AWK中的这个答案。如何从某些awk变量中删除所有小写字符?我试着调用gsub:gsub(/[a-z]+/,"",varName);不幸的是,这会删除整个字符串,就好像awk无法区分小写和大写一样。是否有一些我不知道的可以使用的正则表达式?编辑:确认,awk看不出小写和大写字符之间的区别。示例1(将在此处使用字母f以便更好地理解结果):varName="CHRFProtocol";gsub(/[a-z]/,"f",varName);结果:ffffffffffff示例2(同样,此处将使用字母f以便更好地理解结果):varName="CHRFProtocol";gsub(/[

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/