Este código deve fazê-lo, usando sed, salve-o como um arquivo executável e execute com o caminho completo para o arquivo de origem como o primeiro (e único) parâmetro. Você pode salvar a saída para um novo arquivo, se quiser.
#!/bin/bash
FILE=$1
# check the file exists
[[ -s $FILE ]] || { echo "Can't locate file '$FILE', aborting" >&2; exit 1; }
# get the filename without directory
NAME=$(basename "$1")
# get the first 4 characters as FIRST
FIRST=${NAME:0:4}
# get the 6th & 7th characters as SECOND
SECOND=${NAME:5:2}
# are we good to go?
read -t30 -p "About to prefix '$FIRST,$SECOND,' to all lines in $FILE - ok (y/-): "
[[ $REPLY == "y" ]] || { echo "No changes made"; exit 0; }
# do it
sed "s/^/$FIRST,$SECOND,/" "$FILE"
exit 0
arquivo exam_02:
line1,some,stuff
line2,some,more,stuff
saída:
exam,02,line1,some,stuff
exam,02,line2,some,more,stuff