Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 在Unix中使用Less转到特定行号_Shell_Unix_Search_Less Unix - Fatal编程技术网

Shell 在Unix中使用Less转到特定行号

Shell 在Unix中使用Less转到特定行号,shell,unix,search,less-unix,Shell,Unix,Search,Less Unix,我有一个大约有一百万行的文件。我需要到320123行检查数据。怎么做?以n为行号: ng:跳转到行号n。默认值是文件的开头 nG:跳转到行号n。默认值是文件的结尾 因此,要转到行号320123,您需要键入320123g 直接从粘贴的副本。您也可以使用sed进行此操作- sed -n '320123'p filename 这将打印行号320123 如果你想要一个范围,那么你可以这样做- sed -n '320123,320150'p filename 如果你想从一条线一直到最后- se

我有一个大约有一百万行的文件。我需要到320123行检查数据。怎么做?

n
为行号:

  • ng
    :跳转到行号n。默认值是文件的开头
  • nG
    :跳转到行号n。默认值是文件的结尾
因此,要转到行号320123,您需要键入
320123g


直接从粘贴的副本。

您也可以使用
sed
进行此操作-

sed -n '320123'p filename 
这将打印行号320123

如果你想要一个范围,那么你可以这样做-

sed -n '320123,320150'p filename 
如果你想从一条线一直到最后-

sed -n '320123,$'p filename 

对于编辑,可通过命令行中的
+n
nano
中进行编辑,例如

nano+16 file.txt


要打开第16行的
file.txt

要直接从命令行的特定行打开,请使用:

less +320123 filename
如果还想查看行号,请执行以下操作:

less +320123 -N filename
您还可以选择在终端的特定行显示文件的特定行,以便在需要几行上下文时使用。例如,这将打开终端第10行第320123行的文件:

less +320123 -j 10 filename
从less内部(在Linux中):

单独使用时,g和g将分别带您到文件中的第一行和最后一行;与数字一起使用,它们都是等效的

一个例子;要转到文件的第320123行

按“g”,在冒号后面键入数字320123

此外,您可以在less中键入“-N”以激活/停用行号。事实上,您可以从程序内部传递任何命令行开关,例如-j或-N

注意:您可以在命令行中提供行号以减少启动次数(less+number-N),这比从程序内部执行要快得多:

less +12345 -N /var/log/hugelogfile
这将打开一个文件,显示行号并从第12345行开始


资料来源:man 1 less和less中的内置帮助(less 418)

有趣的是,谷歌决定在谷歌搜索“less go to line”(我认为这是一个好答案)时,将你的部分答案作为他们显示的答案,用
more
?:-)因为。。。并且不要在
g
之后按enter键,或者您将跳转另一行。这或其他答案适用于:
less 9581553g-N file.txt less:无法打开“9581553g”:没有这样的文件或目录
,并且:
less+G-N file.txt less:无法打开“+G”:没有这样的文件或目录
@Wimateeka您应该在
less
中输入这些命令壳首先打开文件
less file.txt
,然后输入命令
9581553g
,这样做更有意义。我将其视为
sed
awk
,您可以将特定行号作为参数。谢谢你的澄清。
less +12345 -N /var/log/hugelogfile