一个非常基本的查询,但我无法解决.我是一个非常基本的awk用户.
我希望将一个文件(不超过100条记录)写入awk,并通过在每行的开头添加一个行号(0填充)来输出修改的文件.
因此,输入文件:
Lorem ipsum dolor sit amet consectetur adipiscing elit
sed do eiusmod tempor incididunt ut labore et
dolore magna aliqua Ut enim ad minim veniam
...
Run Code Online (Sandbox Code Playgroud)
输出文件:
001 Lorem ipsum dolor sit amet consectetur adipiscing elit
002 sed do eiusmod tempor incididunt ut labore et
003
004 dolore magna aliqua Ut enim ad minim veniam
...
Run Code Online (Sandbox Code Playgroud)
我的小一号班轮来做行编号(相当明显)
awk '{print NR, $0}' *infile*
Run Code Online (Sandbox Code Playgroud)
我得到了
1 Lorem ipsum dolor sit amet consectetur adipiscing elit
2 sed do eiusmod tempor incididunt ut labore et
3
4 dolore magna aliqua Ut enim ad minim veniam
...
Run Code Online (Sandbox Code Playgroud)
请注意,输入文件具有需要保留的空白记录(但可以更好地输出未编号)
我也知道我能做到
awk '{printf "%03i", NR}' infile
Run Code Online (Sandbox Code Playgroud)
给我
001
002
003
...
Run Code Online (Sandbox Code Playgroud)
我看不到的是如何将两者结合起来.
我在Linux上使用awk/gawk 4.0.1,所以如果有其他方法可以做我想做的事情,那么我可以使用其他常用的Linux工具箱.
您可以使用printf打印数字,然后打印内容:
awk '{printf "%03i %s\n", NR, $0}' *infile*
Run Code Online (Sandbox Code Playgroud)
03i将打印行数- NR并且%s将打印当前行- $0.其余的是格式化 - 需要在两者之间添加空格以及\n每行之间的换行符.