YOU
YOU

Reputation: 333

how to add number after each four lines

i have a file which contain:

aaaaaaaaaa
aaaaaaaaaa
bbbbbbbbbb
cccccccccc
dddddddddd
eeeeeeeeee
ffffffffff
gggggggggg
aaaaaaaaaa
aaaaaaaaaa
bbbbbbbbbb
cccccccccc
dddddddddd
.....

and i want to add number for each four lines,like this result

aaaaaaaaaa
aaaaaaaaaa
bbbbbbbbbb
cccccccccc1
dddddddddd
eeeeeeeeee
ffffffffff
gggggggggg2
aaaaaaaaaa
aaaaaaaaaa
bbbbbbbbbb
cccccccccc3
dddddddddd
....

how to do that, Thanks for any help!

Upvotes: 1

Views: 124

Answers (2)

jaypal singh
jaypal singh

Reputation: 77105

Using awk:

$ awk '!(NR%4){sub(/$/,++x)}1' file
aaaaaaaaaa
aaaaaaaaaa
bbbbbbbbbb
cccccccccc1
dddddddddd
eeeeeeeeee
ffffffffff
gggggggggg2
aaaaaaaaaa
aaaaaaaaaa
bbbbbbbbbb
cccccccccc3
dddddddddd

Upvotes: 10

fedorqui
fedorqui

Reputation: 289835

You can use this:

$ awk 'NR%4==0 {$0=$0""++incr} 1' file
aaaaaaaaaa
aaaaaaaaaa
bbbbbbbbbb
cccccccccc1
dddddddddd
eeeeeeeeee
ffffffffff
gggggggggg2
aaaaaaaaaa
aaaaaaaaaa
bbbbbbbbbb
cccccccccc3
dddddddddd

Explanation

  • NR%4==0 {$0=$0""++incr} if the number or record (of line, in this case) is 4k, then append the incr variable to the end of the line. Using ++incr we make it be 1 the first time it is used.
  • 1 performs the default awk behaviour: {print $0}.

Upvotes: 5

Related Questions