php 获取正在读取的行号,关于打印:使用grep时获取行号

本文介绍如何使用grep递归搜索文件时获取匹配行的行号,包括使用grep-nr选项,以及如何获取不包含特定字符串的文件。还提及了grep-nr和grep-v的区别,以及配合awk和tail实现行号显示和排除功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我使用grep recursive来搜索文件中的字符串,所有匹配的文件和包含该字符串的行都将打印在终端上。但是也可以得到这些行的行号吗??

例:目前我得到的是/var/www/file.php: $options ="this.target",但我想得到的是/var/www/file.php: 1142 $options ="this.target";,其中1142是包含该字符串的行号。

我用来递归grep的语法是sudo grep -r 'pattern' '/var/www/file.php'。

另一个问题是,我们如何得到不等于一个模式的结果。像所有的文件,但不是有特定字符串的文件?

-v标志将显示不匹配的行(grep-v mytext myfile.txt)

grep -nr SEARCHTERM file1 file2 ...

我有一个很快的问题,我们如何得到不等于一个模式的结果。像所有的文件,但不是有特定字符串的文件?

这将是命令行开关-v。如果运行"grep--help",它将显示所有选项。

如果指定多个文件,则不需要-r。如果指定目录,则只需要-r。

@jeanpaul-我看到-nr和-n-r的结果都一样。你用的是什么版本的grep?$grep-n-r name*wc-l 1984$grep-nr name*wc-l 1984$grep-v grep(bsd grep)2.5.1-免费bsd

@米罗A。我再也看不出这个错误了,也许我弄错了什么……

行号用grep -n打印:

grep -n pattern file.txt

要仅获取行号(不带匹配行),可以使用cut:

grep -n pattern file.txt | cut -d : -f 1

不含图案的线条用grep -v打印:

grep -v pattern file.txt

最后一个匹配的行号:grep -n pattern file.txt | cut -d : -f 1 | tail -1(您可以将其保存到一个变量中,并使用它来创建尾部文件)

如果只需要行号,请执行以下操作:

grep -nr Pattern file.ext | gawk '{print $1}' FS=":"

例子:

$ grep -nr 9780545460262 EXT20130410.txt | gawk '{print $1}' FS=":"

48793

52285

54023

awk -F: '{print $1}'也可以工作,在文件上使用时,grep中不需要-r(只能递归搜索目录)

grep -A20 -B20 pattern file.txt

搜索模式并在模式前后显示20行

这根本不是我们要求的。

另外,如果需要的话,-C20是一个较短的版本。

为了用行号显示结果,您可以尝试此操作

grep"word to search for" /path/to/file/file -nr

结果应该是这样的:

linenumber: data data data word to search for data data

grep-nr"search string"目录

这会给你一行的行号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值