erro de sintaxe AWK

0

Eu estou tentando encontrar todos os arquivos com uma determinada extensão e awk os resultados e acrescentar em all.txt.

set -xe

EXT="${1}"
TYPE="${2}"
COMP="${3}"

find -iname \*.${EXT} -print0 | xargs -0 ls -l --time-style="+%b %Y" | awk '{print $NF,$3,$5,$6,$7}' OFS="\t" > ${EXT}.txt
awk -vextension="${EXT}" -vfiletype="${TYPE}" -vcompress="${COMP}" -vOFS="\t" '{print $0, extension, filetype, compress}' < ${EXT}.txt >> all.txt

Eu sou capaz de obter a saída do comando find,

.fielename.gz   Jason   197025960   May 2018

No entanto, estou recebendo este erro de sintaxe do comando awk,

+ awk -vextension=gzip -vfiletype=gz -vcompress=compressed '-vOFS=\t' '{print $0, extension, filetype, compress}'
awk: {print $0, extension, filetype, compress}
awk:                     ^ syntax error
    
por Jason 20.09.2018 / 18:38

1 resposta

2

Tente substituir o nome da variável extension por outra coisa, por exemplo, ext ; em gawk , extension é uma palavra-chave / built-in.

$ gawk 'BEGIN{print extension}'
gawk: cmd. line:1: BEGIN{print extension}
gawk: cmd. line:1:                      ^ syntax error
$ gawk 'BEGIN{print ext}'  # OK
^D
$ gawk -vextension=gzip 'BEGIN{print extension}'
gawk: fatal: cannot use gawk builtin 'extension' as variable name
    
por 20.09.2018 / 18:42

Tags