我想看看用户input的input是否包含在空格分隔的列表中。 interfaces=`ls /sys/class/net | awk '{ ORS=" "; print; }'` # Loop until valid input for interface is received while [[ -z "$interface" || ! "$interfaces" =~ "$interface" ]] do echo -n "Select the interface ( "$interfaces"): " read interface done $接口可能包含的东西沿着"eth0 lo wlan0 wlan1 " ,我想看看用户是否已经进入该列表中的界面,如果不告诉他们再次做。 我似乎无法弄清楚如何做到这一点。 我尝试了通配符和==运算符以及与=~匹配的正则expression式,但我没有太多的运气。 是否有一个简单而干净的方式来检查用户input的值是否在我创build的列表/string内? 谢谢你的帮助!
我试着在我的Linux机器中使用awk命令,它会引发错误。 awk -F "VALUES(" '{print $2}' 错误: awk: fatal: Unmatched ( or \(: /VALUES(/ 我也尝试了反斜杠,它也没有工作。 awk -F "VALUES\(" '{print $2}' 错误: awk: warning: escape sequence `\(' treated as plain `(' awk: fatal: Unmatched ( or \(: /VALUES(/ 请让我知道如何包含(在awksearchstring。
让我们把stringAaAa 。 我想匹配a s: $ echo AaAa | grep -oa a a 所以它打印每一场比赛,而不仅仅是第一个。 当我添加一个星星后,我得到以下 $ echo AaAa | grep -o 'a*' $ 为什么grep这次不输出每一个匹配? 我知道它匹配,因为如果我们删除-o选项,它会打印整行: $ echo AaAa | grep 'a*' AaAa 要看看它应该匹配多less匹配我用sed : $ echo AaAa | sed 's/a*/x/g' xAxAx replace为x的string应该是grep -o打印的。 所以比赛如下: 空string在开始时匹配零次 第a 第二a 为什么不打印以下内容? $ echo AaAa | grep -o 'a*' a […]
基本上我有一个DHCP服务器日志的输出,看起来像这样: hardware ethernet 00:16:41:ef:9e:47; client-hostname "mo-10"; hardware ethernet 00:11:25:73:20:a5; client-hostname "mo-11"; hardware ethernet 00:11:25:73:20:a5; client-hostname "mo-11"; hardware ethernet 00:11:25:73:20:a5; client-hostname "mo-11"; hardware ethernet 00:16:41:ef:9e:47; client-hostname "mo-10"; hardware ethernet 00:11:25:73:21:35; client-hostname "mo-23"; 每两条线合在一起 – 第一个是networking上设备的MAC地址,第二个是主机名。 我想列出这个列表,并将每一对行放入我的DHCP服务器的configuration块中,如下所示: host mo-10 { hardware ethernet 00:16:41:ef:9e:47; fixed-address 192.168.1.10; } 主机之后的部分应该与客户端主机名相同,硬件以太网块应该是相同的,固定地址应该始终是192.168.1.x其中x是主机名中的数字(因此对于主机mo-10,ip应该是192.168.1.10,mo-23将是192.168.1.23等)。所有东西都应该括在大括号中。 另外还有很多重复的条目,我想删除。 我试着用grep和awk搞乱,但是我不是很擅长在bash中操作文本,这对我来说太复杂了。 如果有人能提供一种方法来实现这一点,并解释它为什么起作用,我会很高兴。 非常感谢你。
嘿家伙和女孩。 我是新来的,请亲切:)。 是的,我有一些问题…我正在写一些脚本,并始终使用我的文档文件夹的绝对path。 有些东西是这样的: cd /home/myname/documents/blabla/ 更多或更less,我想清除代码,使其他人可用,并将其更改为如下所示: VARIABLE="/home/myname/documents" cd $VARIABLE/blabla 而且由于脚本中有超过9000个绝对path,所以我自然想到使用SED来“清理”我的脚本。 问题在于: sed -ie "s|home/myname/documents|$VARIABLE|g" script1 这当然给了我空的空间。 我想用string“$ VARIABLE”而不是variables本身交换path。 试了一些像引号,一些括号的东西,但无法弄清楚它是如何工作的。 所以我适用于你。 你可以帮帮我吗? 我真的可以睡一会儿了… ^^ 非常感谢,很抱歉我的英语。 一个n00bie。
我有一个文件的行看起来类似于: "somestring": "20.000", 我想删除20,000左右的报价。 其他用例是 "somestring": "20", "somestring": "blahhhah 3", "somestring": "", 这应该给 "somestring": 20, "somestring": "blahhhah 3", "somestring": "", 识别数字的明显正则expression式为[0-9]+和[0-9].[0-9]+为小数。 我被告知这是可能的与sed命令,因为它可以反向引用,但是我不知道如何使用sed命令。 有人可以请我提供任何Linux命令来完成这个?
我有一个如下的文件: A 4 ab,cc,ab,bc B 6 x,xx,y,%,%%,\,\\ AB 0 我需要从文件的第三列grep特殊字符,并返回其相应的第一列。 例如,我需要grep'%',它会返回我B(它是相应的第一列) 我曾尝试使用: grep -w "%" file1 但它会返回我%和%%两者。 喜欢: B 6 x,xx,y,%,%%,\,\\ 其中%,%%突出显示。 我只想grepsearch确切的单词/字符。 在上述情况下,应该只尝试find'%'而不是'%%'。 当它find包含匹配形成整个单词的行时,这种方法可以很好地用grep手册grep -w作品中的单词。 我也尝试过使用它 grep -wP "%" file1 对于像Perl一样的模式。 但没有任何回报。 任何人都可以build议如何grep精确匹配的特殊字符? 但是这并不能解决特殊字符“\”的问题。 反斜杠可以被转义和处理。 但对于其他特殊字符,我需要find一个解决scheme。 好。 在我的问题这里需要稍微改变。 根据我的问题,这里给出的所有答案都很好,工作得很好。 但也许我错过了这里的另一个要求。 我的错。 由于这里所有的解决scheme都使用'%'作为testing参数,但'%'只是我的例子。 我真正在寻找更多的是一个广义的解决scheme,适用于所有的单词/字符。 我会举一个例子。 考虑下面的文件: A 4 ab,cc,ab,bc ^ ^ ^ couple of tabs […]
很简单,我有一个文件,在每一个换行符都有\ r \ n。 aaaa\r\nbbbb\r\ncccc 我想删除\ r字符,同时离开\ n到位。 我可以在python中轻松完成这个任务,但是使用简单的sed命令似乎更加优雅。 这可能吗? 什么expression会做的伎俩? 我似乎无法在网上find任何这样的解决scheme。 谢谢
我有价格string格式为$25.00在各种HTML文件。 我想使用Linux命令行(BASH,大概是用awk或sed)将每个价格增加一定的金额(在这种情况下为$ 3)。 总之,我需要find$ nn.00,并用$(n + 3)n.00replace它 开始把它放在一起,但我不知道如何添加3 sed -r 's/([^$][0-9][0-9][.]00). ????' file.html sed -r 's/([^$][0-9][0-9][.]00). ????' file.html 谢谢!
我的/etc/pam.d/system-auth-ac设置了下面的auth参数: auth required pam_env.so auth sufficient pam_unix.so nullok try_first_pass auth requisite pam_succeed_if.so uid >= 500 quiet auth required pam_deny.so 我想在pam_env.so之后插入pam_tally2.so 。 所以我希望它是: auth required pam_env.so auth required pam_tally2.so onerr=fail audit silent deny=5 unlock_time=900 auth sufficient pam_unix.so nullok try_first_pass auth requisite pam_succeed_if.so uid >= 500 quiet auth required pam_deny.so 我正在使用的脚本是: #! /bin/bash grep "pam_tally2" /etc/pam.d/system-auth-ac &> […]