Unix 使用 awk/grip 在文件中查找字符串的行号

Unix find line number of a string in a file using awk/grip

我正在尝试查找字符串的位置

awk -F : '{if ( [=11=] ~ /Red Car/) print [=11=]}' /var/lab/lab2/rusiuot/stud2001 | tail -l

不知何故我需要找到红色汽车的线路位置。可以使用 awk 或 grep 来做到这一点吗?

你可以做到

awk '/Red Car/ {print NR}' /var/lab/lab2/rusiuot/stud2001

这将打印带有 Red Car

的行的行号

如果您希望在文件末尾打印行号:

awk '/Red Car/ {a[NR]} 1; END {print "\nlines with pattern";for (i in a) printf "%s ",i;print ""}' file

试试这样的:

grep -n "Red Car" /var/lab/lab2/rusiuot/stud2001 | cut -d":" -f 1

-n 选项将显示行号以及找到模式的行。