Não sei exatamente o que você está tentando fazer, mas isso pode ajudar:
awk -v var="new" 'BEGIN { print substr(ARGV[1], 0, 2) var substr(ARGV[1], 6); }' myoldfilename
Eu tenho o seguinte arquivo que estou dividindo em vários arquivos usando o script awk
Nome do arquivo original: RTLOG_5019_05122016110959.DAT
Eu quero definir o nome dos arquivos divididos como abaixo:
RTLOG_5019_<timestmap (format: mmddyyyyhhmiss) >.DAT.
Como faço para isso? Eu não quero codificar o nome do arquivo e também fazer filename-RTLOG_5019_05122016110959.DAT
como parâmetro
A seguir está meu script awk
awk -v stamp=$(date +%Y%m%d%H%M%S) '
/^FHEAD/ {HD = $0
next
}
/^THEAD/ {if (FN) { printf "FTAIL%010d%010d" ORS, LN+2, LN > FN
close (FN)
LN = 0
}
FN = "RTLOG_5019_" stamp ".DAT" ++f
print HD > FN
}
!/^FTAIL/ {print >> FN
LN++
}
END {printf "FTAIL%010d%010d" ORS, LN+2, LN > FN
} ' RTLOG_5019_05122016110959.DAT
Não sei exatamente o que você está tentando fazer, mas isso pode ajudar:
awk -v var="new" 'BEGIN { print substr(ARGV[1], 0, 2) var substr(ARGV[1], 6); }' myoldfilename
Tags awk