我需要用序列号列表替换第一列数字。该文件看起来像:
1 the quick brown fox jumps over
7 the lazy dog the quick brown
13 fox jumps over the lazy dog
26 the quick brown fox jumps over
31 the lazy dog the quick brown
我需要:
1 the quick brown fox jumps over
2 the lazy dog the quick brown
3 fox jumps over the lazy dog
4 the quick brown fox jumps over
5 the lazy dog the quick brown
任何使用bash / sed / awk的解决方案都将受到赞赏。
答案 0 :(得分:4)
使用awk
awk '$1=NR' OFS="\t" file
1 the quick brown fox jumps over
2 the lazy dog the quick brown
3 fox jumps over the lazy dog
4 the quick brown fox jumps over
5 the lazy dog the quick brown
由于NR
总是大于0
的数字,因此始终为真并打印
您可以使用'{$1=NR}1
或{$1=NR;print $0}
来提高其可读性。
答案 1 :(得分:0)
尝试使用awk变量NR
,它会为您提供正在处理的记录号
如果您想要asample代码,请参阅以下内容:
假设文件有这样的记录
1 ask
5 rup
6 dd
现在运行以下命令:
awk '{ print NR FS $2 }' filename
输出:
1 ask
2 rup
3 dd
休息我留给你弄清楚