Linux:使用cut命令删除某些字符前后的所有内容
问题是要显示发生了多少次NMI。如果我选中“cat/proc/interrupts”,它会显示 现在我需要一个只返回20的一行程序。我已经做了:Linux:使用cut命令删除某些字符前后的所有内容,linux,bash,grep,cut,Linux,Bash,Grep,Cut,问题是要显示发生了多少次NMI。如果我选中“cat/proc/interrupts”,它会显示 现在我需要一个只返回20的一行程序。我已经做了: grep -P 'NMI' /proc/interrupts | cut -d ':' -f2 删除开始时的“NMI:”,但不知道如何在同一行中完成其余所有操作 干杯您可以使用awk例如: $ awk '/^NMI/ {print $2, $3}' /proc/interrupts 0 0 如果仍要使用cut,则首先必须使用tr压缩空格: $ gr
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
您可以使用
awk
例如:
$ awk '/^NMI/ {print $2, $3}' /proc/interrupts
0 0
如果仍要使用cut
,则首先必须使用tr
压缩空格:
$ grep "^NMI:" /proc/interrupts | tr -s ' ' | cut -d' ' -f2,3
0 0
与:
与:
为此,我选择的武器是
awk
,因为它的设计考虑到了这种处理方式:
awk '/^NMI/{
for(i=1; i<=NF; ++i)
if($i~/^[[:digit:]]+$/)
printf("%10d ", $i);
print ""
}' /proc/interrupts
awk'/^NMI/{
对于(i=1;i对于这一点,我选择的武器是awk
,因为它的设计考虑到了这种处理方式:
awk '/^NMI/{
for(i=1; i<=NF; ++i)
if($i~/^[[:digit:]]+$/)
printf("%10d ", $i);
print ""
}' /proc/interrupts
awk'/^NMI/{
对于(i=1;对于第二个,应该是:grep-P'NMI'/proc/interrupts | tr-s'| cut-d'-f2,3
是的,真的。只是不需要-P。更新了,谢谢!您可以使用cut-w
按任意数量的空格分割(连续空格和制表符作为单个字段分隔符)在我的切割(GNU coreutils)中,@地毯烟民不知道-w
切割的选项8.20
不可用。@fedorqui是的,这似乎是一个BSD扩展…我以为它是POSIX/universal,但显然不是。我的坏。对于第二个扩展,应该是:grep-P'NMI'/proc/interrupts | tr-s'| cut-d'-f2,3
是的,正确点。只是-P不需要。更新了,谢谢!您可以使用cut-w
按任意数量的空白(连续空格和制表符作为单个字段分隔符计算)不知道-w
选项到剪切
,@ru毯smoker.In my剪切(GNU coreutils)8.20
不可用。@fedorqui对,这似乎是一个BSD扩展…我以为它是POSIX/universal,但显然不是。我的错。你想在你的文件中计算NMI吗?你想在你的文件中计算NMI吗?@BMW:我利用shell分词来避免显示不需要的内容spaces@BMW:我利用shell单词splitting以避免显示不需要的空间