Grep 为什么削减不起作用?

Grep 为什么削减不起作用?,grep,cut,command-line-tool,Grep,Cut,Command Line Tool,所以基本上我想打印出ELF二进制文件的.data、.rodata和.bss部分的某些列,我使用以下命令: readelf -S hello | grep "data\|bss" | cut -f1,2,5,6 但令我惊讶的是,结果是: [15] .rodata PROGBITS 080484d8 0004d8 000020 00 A 0 0 8 [24] .data PROGBITS 0804a00c 00

所以基本上我想打印出ELF二进制文件的.data、.rodata和.bss部分的某些列,我使用以下命令:

readelf -S hello | grep "data\|bss" | cut -f1,2,5,6
但令我惊讶的是,结果是:

 [15] .rodata           PROGBITS        080484d8 0004d8 000020 00   A  0   0  8
 [24] .data             PROGBITS        0804a00c 00100c 000008 00  WA  0   0  4
 [25] .bss              NOBITS          0804a014 001014 000008 00  WA  0   0  4
这意味着伤口不起作用


我不知道为什么,在网上搜索了一段时间后,我仍然不知道如何做对,有人能给我一些帮助吗?

您输入的内容实际上是由空格而不是选项卡删除的。默认情况下,“剪切”选项卡。这应该起作用:

切割-d'-f1,2,5,6


它将分隔符指定为“”空格。

您输入的内容实际上是由空格而不是制表符分隔的。默认情况下,“剪切”选项卡。这应该起作用:

切割-d'-f1,2,5,6

它将分隔符指定为“”空格。

我会在这里使用awk,因为您可以用一个命令完成所有操作

readelf -S hello | awk '/data|bss/ {print $1,$2,$5,$6}'
awk将使用任何空格和分隔符。一个空格、多个空格、选项卡等。

我会在这里使用awk,因为您可以用一个命令完成所有操作

readelf -S hello | awk '/data|bss/ {print $1,$2,$5,$6}'
awk将使用任何空格和分隔符。一个空格、多个空格、选项卡等