gpt4 book ai didi

linux - 在 block 设备上返回字节偏移量和行匹配表达式?

转载 作者:太空宇宙 更新时间:2023-11-04 09:03:35 25 4
gpt4 key购买 nike

我想在 block 设备 (/dev/sdb) 上运行扫描以找到表达式“some text”并返回表达式的行“This is some text I found.”以及它的字节偏移量:

32768 - 这是我找到的一些文本。

我尝试使用 grep -a --byte-offset "some text"/dev/sdb 但我遇到了 grep:line too long 错误。

我知道我的 LINE_MAX 是 2048,所以我想知道如何将该限​​制提高到某个任意大的值或者替换 PERL 中的这个函数?

谢谢!

最佳答案

未经测试,即使正确也可能是次优的:

#!/usr/bin/env perl

use autodie;
use strict;
use warnings;

{
use bytes;
open my $h, '<', '/dev/sdb';

my $offset = 0;

while (my $line = <$h>) {
while ($line =~ /ext?/g) {
printf "Line: %d\tByte: %d\n", $., $offset + $-[0];
}
$offset += length $line;
}
}

关于linux - 在 block 设备上返回字节偏移量和行匹配表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15774888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com