[英]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.