将数字添加到文件中每行的开头
我怎样才能将数字添加到文件的每一行的开头?
例如:
这是 文本 从文件中。
变为:
000000001这是 000000002的文字 000000003从文件。
AWK的printf , NR
和$0
可以很容易地对格式化进行精确和灵活的控制:
~ $ awk '{printf("%010d %s\n", NR, $0)}' example.txt 0000000001 This is 0000000002 the text 0000000003 from the file.
不要使用猫或任何其他不是专门devise的工具。 使用该程序:
nl – 文件的行数
例:
nl --number-format=rz --number-width=9 foobar
因为nl是为它而做的;-)
你正在寻找nl(1)
命令:
$ nl -nrz -w9 /etc/passwd 000000001 root:x:0:0:root:/root:/bin/bash 000000002 daemon:x:1:1:daemon:/usr/sbin:/bin/sh 000000003 bin:x:2:2:bin:/bin:/bin/sh ...
-w9
要求九位数字的长度; -nrz
要求将数字格式化为带有零填充的右alignment。
cat -n thefile
将完成这项工作,尽pipe数字的格式稍有不同。
perl -pe 'printf "%09u ", $.' -- example.txt
这是一个bash脚本,它也会这样做:
#!/bin/bash counter=0 filename=$1 while read -r line do printf "%010d %s" $counter $line let counter=$counter+1 done < "$filename"
最简单,最简单的select是
awk '{print NR,$0}' file
见上面的评论为什么NL不是最好的select。