谁能告诉我如何使用awk打印包括零的行号?
这是我的输入文件stackfile2.txt
当我运行下面的awk命令时,我得到actual_output.txt
awk '{print NR,$0}' stackfile2.txt | tr " ", "," > actual_output.txt
Run Code Online (Sandbox Code Playgroud)
而我的预期输出是file.txt
如何打印以零(0)开头的行号?
Lan*_*rts 77
NR从1开始,所以使用
awk '{print NR-1 "," $0}'
Run Code Online (Sandbox Code Playgroud)
BMW*_*BMW 12
使用awk.
我从0开始,i++将增加i的值,但返回我在增加之前保持的原始值.
awk '{print i++ "," $0}' file
Run Code Online (Sandbox Code Playgroud)
除了awk之外的另一个选项是nl,它允许-v设置起始值的选项以及-n <lf,rf,rz>左前,右和右的前导零合理.您还可以包含-s字段分隔符,例如-s ","行号和数据之间的逗号分隔.
在Unix环境中,这可以完成
cat <infile> | ...other stuff... | nl -v 0 -n rz
Run Code Online (Sandbox Code Playgroud)
或者干脆
nl -v 0 -n rz <infile>
Run Code Online (Sandbox Code Playgroud)
例:
echo "Here
are
some
words" > words.txt
Run Code Online (Sandbox Code Playgroud)
cat words.txt | nl -v 0 -n rz
日期:
000000 Here
000001 are
000002 some
000003 words
Run Code Online (Sandbox Code Playgroud)