awk 打印出带有行号的文件

Jaz*_*ine 5 printing awk

我想打印一个包含 1 列列表值的文件,例如:

cat
dog
house
Run Code Online (Sandbox Code Playgroud)

但我想让文件像这样打印到另一个文件:

1 cat
2 dog
3 house
Run Code Online (Sandbox Code Playgroud)

我认为 awk 可以用来做这个吗?

你能提供命令来做到这一点吗?我知道我需要做这样的事情来打印文件:

awk -F '{ print $1 }'
Run Code Online (Sandbox Code Playgroud)

但我会做这样的事情:

int i
awk -F '{ print i, " " $1 }'
i++
Run Code Online (Sandbox Code Playgroud)

(把我的 awk 书留在工作中)

Sly*_*Sly 5

这可以通过NR(记录数)来完成:

awk '{ print NR, $1 }'
Run Code Online (Sandbox Code Playgroud)

例子:

$ echo -e "test test\ntest test" | awk -F'\n' '{print NR, $1}'
1 test test
2 test test
Run Code Online (Sandbox Code Playgroud)

  • 如果您只想保留整个输入行,请不要使用 `-F` 并执行 `awk '{print NR,$0}'` (2认同)