如何打印特定范围的行并使用 sed 或 awk 枚举它们

How to print a specific range of lines and enumerate them with sed or awk

我想知道如何使用 sed 或 awk 打印特定范围的行并像这样枚举它们

HORSE
CAT
DOG
LION
MOUSE
MONKEY
SNAKE
PANDA
WOLF
TIGER

因此第 4-9 行的输出如下所示

1. LION
2. MOUSE
3. MONKEY
4. SNAKE
5. PANDA
6. WOLF

谢谢!

cat youdatafile | awk '(NR>=4 && NR<=9) {print([=10=])}'| awk '{print(NR ". " [=10=])}'

或不久

awk 'BEGIN {n=1} (NR>=4 && NR<=9) {print(n ". " [=11=]); n++}' yourdatafile

使用范围内的关键字:

$ awk '/LION/,/WOLF/{print ++c,[=10=]}' file

输出:

1 LION
2 MOUSE
3 MONKEY
4 SNAKE
5 PANDA
6 WOLF

或使用记录编号:

$ awk 'NR==4,NR==9{print ++c,[=12=]}' file