Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用awk打印从零开始的行号_Awk - Fatal编程技术网

使用awk打印从零开始的行号

使用awk打印从零开始的行号,awk,Awk,有谁能告诉我如何使用awk打印包括零在内的行号吗 这是我的输入文件 当我运行下面的awk命令时,我得到 而我的预期产出是 如何打印从零(0)开始的行号?NR从1开始,因此使用 awk '{print NR-1 "," $0}' 使用awk i从0开始,i++将递增i的值,但返回递增之前保留的原始值 awk '{print i++ "," $0}' file 如果Perl是一个选项,您可以尝试以下方法: perl -ne 'printf "%s,$_" , $.-1' file $\uu是行

有谁能告诉我如何使用awk打印包括零在内的行号吗

这是我的输入文件

当我运行下面的awk命令时,我得到

而我的预期产出是

如何打印从零(0)开始的行号?

NR从1开始,因此使用

awk '{print NR-1 "," $0}'
使用awk

i从0开始,
i++
将递增i的值,但返回递增之前保留的原始值

awk '{print i++ "," $0}' file

如果Perl是一个选项,您可以尝试以下方法:

perl -ne 'printf "%s,$_" , $.-1' file
$\uu
是行

$。
是行号

是awk之外的另一个选项,它允许选项
-v
用于设置起始值,而
-n
用于左、右和右,前导零对齐。您还可以使用
-s
作为字段分隔符,例如
-s“,”
用于行号和数据之间的逗号分隔

在Unix环境中,这可以按如下方式完成

cat <infile> | ...other stuff... | nl -v 0 -n rz
cat words.txt|nl-v 0-n rz

输出:


是不是
awk'{print NR-1,$0}'
?@user790049,不要让我们通过链接来找出问题所在。显示一个小样本输入,并告诉我们您希望输出是什么样子。很抱歉,我们将从下一次开始处理这些文件的链接已断开。你能把问题包括进去吗?+对于比
NR-1
短的一个字符,你也可以使用
awk'{print i++,$0}'OFS=,file
但这会更长。@Jotne出去打高尔夫球时,
awk'$0=i++,“$0'
比它强;-)最好将输出字段分隔符设置为逗号:
awk-v OFS=“,”{print NR-1,$0}文件
。如果要查找自定义起始值和其他自定义设置,请根据下面的
nl
查看答案。
cat <infile> | ...other stuff... | nl -v 0 -n rz
nl -v 0 -n rz <infile>
echo "Here 
are
some 
words" > words.txt
000000      Here
000001      are
000002      some
000003      words