使用grep bash打印文本所在的行
我想grep一个文件中的某些文本,并只输出它出现的行号。例如: File.text:使用grep bash打印文本所在的行,bash,grep,Bash,Grep,我想grep一个文件中的某些文本,并只输出它出现的行号。例如: File.text: firstsentance secondsentance thirdsentance 如果我请求第二个句子,我将收到2的输出 我不相信grep本身有这样的功能,但是你可以写: grep -n secondsentance File.text | sed 's/:.*//' 要从中删除所有内容,请执行以下操作: 请注意,这将不会单独具有与grep相同的退出代码。我不认为grep本身具有这样的功能,但您可以编写
firstsentance
secondsentance
thirdsentance
如果我请求第二个句子,我将收到2的输出 我不相信
grep
本身有这样的功能,但是你可以写:
grep -n secondsentance File.text | sed 's/:.*//'
要从中删除所有内容,请执行以下操作:
请注意,这将不会单独具有与
grep
相同的退出代码。我不认为grep
本身具有这样的功能,但您可以编写:
grep -n secondsentance File.text | sed 's/:.*//'
要从中删除所有内容,请执行以下操作:
请注意,这将不会单独具有与
grep
相同的退出代码。这将执行您想要的操作:
sed -n '/secondsentence/=' File.text
Perl:
这将满足您的要求:
sed -n '/secondsentence/=' File.text
Perl:
还有一个awk解决方案
awk '/secondsentance/ { print NR }' file
还有一个awk解决方案
awk '/secondsentance/ { print NR }' file
尝试学习AWK:
awk '/secondsentance/ { print NR }' file.text
尝试学习AWK:
awk '/secondsentance/ { print NR }' file.text
file.text中的每个单词都应该在自己的行中,而不是在同一行中。file.text中的每个单词都应该在自己的行中,而不是在同一行中。我的答案非常相似,但使用了
cut
,例如:。|cut-d:-f1
,所以+1我的答案非常相似,但使用了cut
,比如:…|切割-d:-f1
,因此+1我喜欢这样,因为选项=
没有被广泛使用,除了避免使用管道之外,+1回答很好。我还想提一下,如果一个人只想要第一场比赛,你可以在比赛找到后退出sed-n'/second句子/{=;q}'
我喜欢这样,因为选项=
没有被广泛使用,除了避免使用管道之外,+1回答得很好。我还想提一下,如果一个人只想要第一场比赛,你可以在比赛找到后退出sed-n'/secondstatement/{=;q}'