繁体   English   中英

为什么切割无法工作?

[英]Why cut cannot work?

所以基本上我想打印出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

这意味着cut无效...

我不知道为什么,在网上搜索后,我仍然不知道如何正确处理,有人可以给我一些帮助吗?

您输入的内容实际上是由空格而不是TAB取消的。 默认情况下, cut期望TAB。 这应该工作:

cut -d ' ' -f1,2,5,6

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

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

readelf -S hello | awk '/data|bss/ {print $1,$2,$5,$6}'

awk可与任何空格分隔符一起使用。 一个空格,多个空格,制表符等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM