我真的很努力在终端中将带有行号的新列添加到管道分隔文件中
我当前的文件如下:
ID|FirstName|LastName
12|John|Svernson
23|Mark|Wright
11|Chris|Watson
我希望文件看起来如下:
LN|ID|FirstName|LastName
1|12|John|Svernson
2|23|Mark|Wright
3|11|Chris|Watson
我有超过9万行。我找不到办法。任何帮助或指导,将不胜感激。谢谢
答案 0 :(得分:4)
一个有趣的选择:
var config = new ContainerConfiguration()
.WithAssemblies(new[]{ typeof(AppShell).Assembly}, conventionBuilder);
尽管实际上我会用
{ echo LN; seq $(( $(wc -l < file) - 1 )); } | paste -d'|' - file
答案 1 :(得分:2)
请您尝试以下。
awk 'FNR==1{print "LN|"$0;next} {$1=++count "|" $1} 1' Input_file
也要将输出写入Input_file本身,请在上面的代码中附加> temp_file && mv temp_file Input_file
。
答案 2 :(得分:1)
使用awk变量NR(记录号):
awk -F'|' 'NR==1{print "LN" FS $0}NR!=1{print NR-1 FS $0}' file
答案 3 :(得分:0)
我会使用nl
。如果行号超过6位,可能会遇到问题,但是如果需要,您可以添加-w
来增加数字宽度:
{ read line; echo "LN|$line"; cat | nl -w 10 -ba -s \|; } < input |
sed 's/^ *//';