linux - 用于查找第 n 次出现的字符串并打印行号的 shell 脚本

标签 linux shell unix awk

我有一个名为 hello 的文件,其中包含以下数据

onefish
onechicken
twofish
twochicken
threechicken
twocows

我想获取 chicken 第二次出现的行号。

输出应为 "4",因为 chicken 在第 4 行第二次出现。

最佳答案

您可以为此使用 awk:

awk '/chicken/{++n; if (n==2) { print NR; exit}}' file

4

关于linux - 用于查找第 n 次出现的字符串并打印行号的 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41162782/

相关文章:

Linux shell awk : displaying different column values when condition met

linux - 使用 shell 脚本计算无法移动的文件数

c - 在unix中打开系统调用

unix - 如何使用 sendmail 发送带有多个文本附件的 HTML 正文电子邮件

linux - 使用 flex 生成的文件时出现问题

ruby - 如何仅使用thin部署sinatra应用程序?

linux - 尝试在没有阅读器的情况下编写时捕获 SIGPIPE

linux - awk 脚本根据特定模式查找字符串并查找其相应的行并构建另一个输出文件

shell - 如何检查一个进程是否在 docker 容器内运行?

unix - Unix FIFO/命名管道的命名约定是什么?