如何在Linux中的文件中添加行名称列?

如何在Linux中的文件中添加行名称列?

我有一个巨大的文件(50000 行),如下所示:

输入.txt:

123315334262625363534
265343426272282827262
224343536625242536363
635352627273635373732
363353533637383838327
635342422325337474524

我想将行号添加为文件开头的第一列,同时每个数字重复两次:

1 123315334262625363534
1 265343426272282827262
2 224343536625242536363
2 635352627273635373732
3 363353533637383838327
3 635342422325337474524

有什么建议吗?

答案1

awk

awk '{getline l; printf "%d %s\n%d %s\n", ++i, $0, i, l}' <in >out

答案2

其他awk

awk '{print ++count, $0}NR%2{count--}' <in >out

sed+NL

sed 'N;s/\n/@/' <in |
nl |
sed 's/\(\(^\s*[0-9]*\s*\).*\)@/\1\n\2/' >out

答案3

perl -pe 'printf "%d ", .5+$./2'

相关内容