簡體   English   中英

返回塊設備上的字節偏移量和行匹配表達式?

[英]Return byte offset and line matching expression on a block device?

我想在塊設備(/ dev / sdb)上運行掃描,以找到表達式“某些文本”,並返回表達式的行“這是我找到的某些文本 ”。 以及以字節為單位的偏移量:

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;
        }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM