grep(GNU grep)2.16 给出以下string: 这是相当晚,但我想regexp_ _这个! grep '[a-zA-Z]+'除了'所有内容' , _和! 字符(好) 但grep '[a-zA-Z]+[a-zA-Z0-9_]*'没有任何效果(在我的例子中, regexp_应该匹配,但不是_this (nok) 总之,我需要禁止以其他字母开头的单词,然后允许字母和'_'字符(0或更多时间) 我已经尝试在https://regex101.com ,都regexp工作作为expexted。 只有在我的bash shell(以及我正在写的php代码)中,第二个正则expression式没有任何效果。 编辑 :@anubhava#1解决scheme正常工作。 我想通过PHP代码: preg_match('/[a-zA-Z]\+[a-zA-Z0-9_]*/',$myString)不起作用… RE-EDIT :我误解了PHP preg_match的使用,抱歉
我有一个Linux系统上的程序,用于生成需要访问的可预测文件名的数据日志文件,但是我必须通过C / C ++接口来完成。 访问数据的程序需要能够使用正则expression式获取文件path来指定某些文件名称范围,并执行以下操作: 确定是否存在与存在的正则expression式匹配的文件 确定所有匹配文件的总大小 我在压缩和传输文件之前使用这些作为检查。 我怎样才能在C / C ++中做到这一点?
从版本2.25开始,grep中的一个“bug”是固定的,所以空字节而不是新行被用来终止输出行。 这很好用,因为捕获和处理多行grep匹配非常简单(请参阅示例) 不幸的是,我在生产中遇到了grep 2.20版本。 这意味着对于处理\ n结尾的日志文件,您不能区分grep-match与每一行输出。 所以我的问题是: 什么是最有效的方法来处理每个结果 – 而不是grep(盎司)命令的行,当你坚持一个版本比2.25年龄? (注意:这是一个更复杂脚本的小例子,需要根据请求处理超过10k个大日志文件,因此我追求“最高效”的解决scheme) 一个简单的例子: test.log中 flag test1 flag test2 flag test3 test4 test5 flag test6 test7 flag test8 test.sh #!/bin/bash #regex explained: #(?s)enable multiline pattern search #(flag) capturegroup with pattern indicating new entry #[[:blank:]] followed by a space #(.*?) capturegroup for the rest of the entry, non-greedy […]
一个正则expression式/ sed专家的问题:我需要美化一些c ++代码。 代码中散布着不同版本的赋值运算符,它们的间距types不同。 即 a=b a =b a= B a = b a= b A = B. // the correct format needed, and so must be ignored by SED =上应该只有一个空格。 如果发现更多,额外的必须删除。 我需要制作一个脚本来扫描文件夹和子文件夹中的所有文件,并根据需要进行search和replace。 有一些变化,如a + = b等 我在OsX上运行,但有Linux和Windows机器可用。 非常感谢。
我正在尝试检测一个网卡是否configuration。 (在Ubuntu 1604上,所以主要的configuration文件将是/etc/network/interfaces )。 我准备了一个正则expression式来从接口文件中searchconfiguration,如下所示: ^[ \t]*(auto|iface|mapping|allow-.*)[ \t]+eth0 这个正则expression式的工作,当我把它直接在grep命令; 但如果我把这个正则expression式放入一个variables中,然后在grep中使用它,那么grep会抛出错误: grep: Invalid regular expression 你能帮忙找出为什么把它不工作,把正则expression式到一个variables? 谢谢! root@ci-1-0:/home/lisa# mainfn=/etc/network/interfaces root@ci-1-0:/home/lisa# nic_name=eth0 root@ci-1-0:/home/lisa# pattern="^[ \t]*(auto|iface|mapping|allow-.*)[ \t]+$nic_name" root@ci-1-0:/home/lisa# echo $pattern ^[ \t]*(auto|iface|mapping|allow-.*)[ \t]+eth0 root@ci-1-0:/home/lisa# grep -E "^[ \t]*(auto|iface|mapping|allow-.*)[ \t]+eth0" $mainfn auto eth0 iface eth0 inet dhcp root@ci-1-0:/home/lisa# grep -E $pattern $mainfn grep: Invalid regular expression
我有一个5530的zip文件,这个文件全部以某种风格命名。 例如: monatswerte_RR_02076_19370101_19701230_hist.zip 现在我只想提取在5位数字模式的〜250行长列表(ids.txt)中的任何条目的“RR_”之后的5位数模式中匹配的文件。 我试图用bash脚本来解决这个问题,但是这不起作用: for i in "ls"; do if [[$i ==*"cat ids.txt"*]]; then "unzip $i" fi; done ids.txt的一些行: 〜»cat Dokumente / Schneehydro / historical / ids.txt 00013 00050 00085 00107 00108 … 05691 05804 05874 15574
在/ tmp目录下我有以下文件 file1 file2 当我用-regex运行下面的find命令时,find命令与文件不匹配为什么? find /tmp -regex '/file(\d{1,3})/'
嗨亲爱的朋友,早上好 以下问题对于我的系统来说可能是复杂和关键的 我有4个Linux集群的机器 我的目标是在Linux系统的每个文件中find所有types的IP地址(xxx.xxx.xxx.xxx) 备注:需要扫描linux系统中的每个文件,并validation文件是否包含IP地址,如果是,则需要打印IP 如下所示 更多/etc/inet/file.example1 182.23.2.4 255.255.0.0 10.10.1.1 19.2.*.* 127.0.0.1 更多/etc/dir/file1.example2 1.1.1.1 TCP 等等…………….. 我可以得到一些创造性的build议,search所有的IP地址,并打印出来 利迪娅
我想在启动过程中使用这样的脚本禁用我的触摸板 #!/bin/bash #确定设备ID ID = $(xinput list | grep -i touchpad) #检查输出 echo $ ID #禁用$ ID标识的设备 #inputset-prop $ ID“设备已启用”0 </ code> 基本上我想从命令的结果中提取“12”(或任何设备号码): xinput列表| grep -i触摸板 ↳↳SynPS / 2 Synaptics触摸板id = 12 [从指针(2)] 并将其存储在variables$ ID中。 下一个命令将禁用该设备。 任何build议,我怎么能实现呢? 谢谢,Udo
我想删除一个以xml文件中的<Field name="LastDate"开头的行。 空间似乎是在这里创build问题sed -i /^<Field name="LastDate"/d test.xml 。 我如何去做这件事?