Linux:使用cut命令删除某些字符之前和之后的所有内容



问题是显示发生了多少NMI。如果我检查"cat/proc/interrupts",它说

NMI:          0          0   Non-maskable interrupts

现在我需要一个只返回 2 0 的衬里。我已经做到了:

grep -P 'NMI' /proc/interrupts | cut -d ':' -f2

在开始时删除"NMI:",但不知道如何在同一行中完成其余所有操作。

干杯

例如,

您可以使用awk

$ awk '/^NMI/ {print $2, $3}' /proc/interrupts
0 0

如果你仍然想使用 cut ,那么你首先必须用 tr 挤压空格:

$ grep "^NMI:" /proc/interrupts | tr -s ' ' | cut -d' ' -f2,3
0 0

使用 grep:

echo $(grep -oP 'NMI:s+Kd+s+d+' /proc/interrupts)

为此,我选择的武器将是awk,因为它的设计考虑了这种处理:

awk '/^NMI/{
    for(i=1; i<=NF; ++i)
        if($i~/^[[:digit:]]+$/)
            printf("%10d ", $i);
    print ""
}' /proc/interrupts

这应该适用于任意数量的(虚拟)CPU,以防CPU计数增加。例如,我的/proc/interrupts 文件有 4 个数字字段。

相关内容

  • 没有找到相关文章

最新更新