从字符位置获取行号

Pau*_*omé 0 text-processing

在这个问题中,从字符位置获取行号我知道可以在文本文件中使用脚本从字符位置获取行号。

Emacs 具有M-x-goto-char将光标定位在字符位置的功能。

我的问题是:是否有任何组合的 UNIX 实用程序可以以优雅的方式完成工作?

Ste*_*itt 5

相同的技术可用于标准 POSIX 工具:计算直到您感兴趣的字符位置的行数。

一种方法是使用dd将字符保持在感兴趣的位置,并wc计算行数:

dd if=input bs=1 count=5437 | wc -l
Run Code Online (Sandbox Code Playgroud)

这从 0 开始计算行数(如果wc -l输出 0,则字符出现在第一行)。

以下变体清理输出并从 1 开始:

(dd if=input bs=1 count=5437 2>/dev/null; printf "\n") | wc -l
Run Code Online (Sandbox Code Playgroud)