为什么这个命令:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TestApp1
{
class Program
{
static void Main(string[] args)
{
decimal demo1 = 1.2311M;
decimal demo2 = 1.2300M;
decimal demo3 = 1.00M;
decimal demo4 = 1M;
if (IsValid(demo1))
{
Console.WriteLine(ValueKeptZero(demo1));
}
if (IsValid(demo2))
{
Console.WriteLine(ValueKeptZero(demo2));
}
if (IsValid(demo3))
{
Console.WriteLine(ValueKeptZero(demo3));
}
if (IsValid(demo4))
{
Console.WriteLine(ValueKeptZero(demo4));
}
Console.ReadLine();
}
static bool IsValid(object value)
{
if (!(value.GetType() == typeof(decimal)))
return false;
decimal tmp = (decimal)value;
if(tmp == 1.23M)
{
string test = tmp.ToString();
if(test.Substring(test.IndexOf(".") + 1).Length != 4)
{
return false;
}
}
return true;
}
static decimal ValueKeptZero(object value)
{
return (decimal)value;
}
}
}
显示以下内容?你能一步一步地展示吗?
[jalal@galapagos-20] (42)$ dmesg | egrep '(s|h)d[a-z]'
答案 0 :(得分:1)
命令dmesg
将内核日志缓冲区转储到stdout。此输出由一堆日志消息组成,每个消息都在一个单独的行上。
使用选项egrep
将该输出传送到命令(s|h)d[a-z]
。 egrep
一次检查其stdin(dmesg的输出)一行,以匹配正则表达式(s|h)d[a-z]
。此正则表达式将匹配一系列字符:
egrep打印到stdout任何与提供的正则表达式匹配的行。
答案 1 :(得分:1)
egrep命令正在使用正则表达式(s|h)d[a-z]
来过滤dmesg输出中包含序列hda
到hdz
和sda
到sdz
的行 - Linux中磁盘设备的传统名称。
此正则表达式可以切换为[sh]d[a-z]
,效果相同,但您可能会更容易理解。
如果您正在寻找磁盘,有几个误报,例如包含" hdaudio"的行。