如何在 Linux 中搜索特定行?

dlu*_*dy1 4 command-line search

我最近收到一个错误,告诉我第 52 行有问题。我正在尝试了解查找行而不是实际计算行的最佳方法是什么。

在 Windows 中,我经常使用Notepad++将行直接显示在左侧,因此用户可以轻松滚动到他们正在寻找的特定行——但是我在 Linux 中没有看到这个选项。

也许需要某个应用程序?


更新:我目前无法打开软件商店,我唯一的文本编辑器是默认的nanogedit. 因此,请将您的答案限制在不涉及我安装软件的解决方案。

**注意:** 我不想找到某种“字符串”。我希望快速找到字符串出现的第 NUMBER 行。

Joh*_*024 8

让我们创建一个测试文件;

$ seq 100 >file
Run Code Online (Sandbox Code Playgroud)

现在,让我们显示第 52 行:

$ sed -n 52p file
52
Run Code Online (Sandbox Code Playgroud)

或者:

$ awk 'NR==52' file
52
Run Code Online (Sandbox Code Playgroud)

或者,如果您在 中打开了文件vim,则可以键入52G跳转到第 52 行。

使用纳米

假设您的文件名为file.txt. 要在nano显示行、列和字符数的情况下编辑文件,请运行

nano -c file.txt
Run Code Online (Sandbox Code Playgroud)

这是当光标位于 21 行文件的第 7 行时 nano 的样子: 在此处输入图片说明


Chu*_*k R 7

如果您正在寻找 GUI 方法,您可以在默认文本编辑器 gedit 中显示行号。为此,请转到“编辑”->“首选项”并勾选“显示行号”框。

您还可以使用Ctrl+跳转到特定的行号I


wal*_*tor 5

您可以使用less. 使用less -N以显示行号,输入“ 52”到less去线52见man less

或者,您可以使用vim编辑器(类型vim thefile)打开文件,然后输入“ :52”将使您进入第 52 行。参见man vim

  • @dlundy1 如果你没有 `vim`,你仍然有 `vi`,它虽然更基本,但仍然支持导航到行号。 (2认同)

小智 5

vivim

:set nu 打开行号

:set nonu 关闭行号

52gg 转到第 52 行

52G 也转到第 52 行

  • `vi` 和 `vim` 也可以在它们启动时被告知显示行号并将光标定位在特定行的开头:`vi '+set nu' +52`(如果你喜欢,请随时将此信息添加到您的答案中。) (2认同)