gpt4 book ai didi

shell - 如何使用shell脚本确定文件中最后一次出现字符串的行号?

转载 作者:行者123 更新时间:2023-12-04 01:49:49 25 4
gpt4 key购买 nike

我在 Ask Fedora 上努力解决我的 this opened question 我一直在尝试确定字符串 Fedora 在我的 /boot/grub2/grub 中最后一次出现的行号.cfg 文件。有没有办法使用 sedgrepawk 或任何其他通用 shell(特别是 Z Shell,如果特定的 Unix shell我正在使用 matters) 命令?例如,我想要的命令将为 this grub.cfg 文件返回 127(即第 127 行,这是字符串 Fedora 最后一次出现的位置)。我将使用此 shell 命令来确定此行号,以便我可以将其提供给 sed(使用类似于 this question 中的 sed 命令,因为我只想在那些之后的行中替换正则表达式提到软呢帽)。

最佳答案

使用 awk:

awk '/Fedora/ { ln = FNR } END { print ln }'

使用 grep:

grep -n 'Fedora' | tail -n1 | cut -d: -f1

使用 shell(仅在 bash 中测试):

unset ln lnr
while read -r; do
((lnr++))
case "$REPLY" in
*Fedora*) ln="$lnr";;
esac
done < grub.cfg
echo $ln

关于shell - 如何使用shell脚本确定文件中最后一次出现字符串的行号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41075507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com