参加一个自我指导的 linux 教程,我一直对此感到困惑
我的输出一直包括“时钟 15”,请帮忙
#!/bin/sh
#comment single RegEx to match all of the items that you have enough rupees
sed '1d' hw0207.txt | grep -v [2-9][0-9]
#comment grep will filter all numbers greater than 12, -v represents not
#comment first sed was to remove first line
我正在尝试编写一个正则表达式来匹配您有足够卢比的所有项目。不要只匹配线,你应该匹配你能负担得起的线,这样如果价格发生变化,答案仍然是正确的。你只有 12 卢比,如果你想买更多的东西,你需要变得更富有一点。
Input file (hw0207.txt) Expected output of script
item cost
lamp oil 5
rope 10
clock 15
bombs 20
有很多方法可以做到这一点。我将展示两个:
排除
此方法使用上面问题中所示的
-v
选项。grep
我会将其分解为由 OR 条件分隔的两组数字。第一组数字包括 13 到 19。第二组数字是 20 到 99。如果满足其中任何一个条件,则不会在输出中选择它们。选择
这种方法选择数字小于 12 的行。我们再次将其分成两组数字。第一个是 1 到 9 之间的一位数,第二个是 10 到 12 之间的两位数。
注意前导空格和
$
末尾的。交替:
希望这可以帮助