1

次のような行を含む 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

ご協力ありがとうございました

4

3 に答える 3

4
awk '{ print ">"NR }1' file.txt
于 2013-05-29T18:00:49.720 に答える
2
perl -pe 'print ">$.\n"' file.txt
于 2013-05-29T20:06:47.173 に答える
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

here-is-the-document がない場合:

while read; do echo -e ">$((++i))\n$REPLY"; done<file.txt
于 2013-05-29T20:04:24.717 に答える