Как заставить AWK использовать переменную, созданную в Сценарии Bash [дубликат]

16
задан neversaint 23 June 2010 в 03:17
поделиться

5 ответов

Вы можете использовать это так.

for i in `find $1 -name \*.jar`
do
jar tvf $i| awk -F '/' '/class/{print "'${i}'" " " $NF }' >> $classFile
done

Вы должны использовать

"'$ {i}'"

в AWK, чтобы использовать

$ i

, созданный в Bash Script.

12
ответ дан 30 November 2019 в 15:35
поделиться

Флаг -v предназначен для установки переменных из командной строки. Попробуйте что-нибудь вроде этого:

awk -v "BASEN=$basen" '{print BASEN "\t" $3}'
29
ответ дан 30 November 2019 в 15:35
поделиться

Причина в том, что переменные bash (переменные среды) не раскрываются в строках, заключенных в одинарные кавычки. Попробуйте заменить

'{print $basen "\t" $3}'

на

"{print \"$basen\" \"\t\" \$3}"
2
ответ дан 30 November 2019 в 15:35
поделиться

Самый простой способ - создать переменную awk. awk -v awkvar = $ bashvar 'awkscript' .

1
ответ дан 30 November 2019 в 15:35
поделиться

вы можете просто сделать все в awk

awk '{gsub(".txt","",ARGV[1]);print ARGV[1] "\t" $3}' inputfile.txt
4
ответ дан 30 November 2019 в 15:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: