hobbit:/tmp/x$ cat prog #!/bin/bash i=0 for f; do while IFS= read -r line; do let i++ printf '%d %s\n' "$i" "$line" done < "$f" > "$f.tmp" mv -- "$f.tmp" "$f" done hobbit:/tmp/x$ cat foo foo1 foo2 foo3 hobbit:/tmp/x$ cat bar bar alpha bar beta hobbit:/tmp/x$ ./prog foo bar hobbit:/tmp/x$ cat foo 1 foo1 2 foo2 3 foo3 hobbit:/tmp/x$ cat bar 4 bar alpha 5 bar beta