添加行数和特定字符

时间:2013-05-29 17:57:25

标签: linux bash shell awk

我有一个包含这样的行的file.txt:

TEST1
TEST2
TEST3
TEST4

我希望有这样的输出,行数为>在开始时,然后跳线:

>1
TEST1
>2
TEST2
>3
TEST3
>4
TEST4

我尝试了以下命令

awk '{print ">"};{ print NR,$0};' file.txt > file2.txt

但它给了我一个糟糕的结果

>
1 TEST1
>
2 TEST2
>
3 TEST3
>
4 TEST4

感谢您的帮助

3 个答案:

答案 0 :(得分:4)

awk '{ print ">"NR }1' file.txt

答案 1 :(得分:2)

perl -pe 'print ">$.\n"' file.txt

答案 2 :(得分:1)

我认为awk对此有点过于强烈。一个纯bash版本:

while read; do echo -e ">$((++i))\n$REPLY"; done<<XXX
TEST1
TEST2
TEST3
TEST4
XXX

输出

>1
TEST1
>2
TEST2
>3
TEST3
>4
TEST4

没有这里的文件:

while read; do echo -e ">$((++i))\n$REPLY"; done<file.txt