В настоящее время я имею сценарий, в котором я звоню AWK какВыполнение сценария AWK из сценария оболочки производит синтаксические ошибки
/usr/bin/nawk -f rst.awk file1 file2
и rst.awk выглядит
cat rst.awk
{ split($2,a,/\./); curr = a[1]*10000 + a[2]*100 + a[3] }
NR==FNR { prev[$1] = curr; next }
($1 in prev) && (curr > prev[$1])
в этом случае Мне нужно убедиться, что rst.awk всегда имеет над собой содержимое для запуска скрипта.
Можем ли мы написать содержимое rst.awk в самом скрипте? попробовал сам, но не повезло.
cat te.sh
/usr/bin/nawk -f
{ split($2,a,/\./); curr = a[1]*10000 + a[2]*100 + a[3] }
NR==FNR { prev[$1] = curr; next }
($1 in prev) && (curr > prev[$1])
file1 file2
./te.sh
/usr/bin/nawk: no program filename
./te.sh: line 2: syntax error near unexpected token `$2,a,/\./'
./te.sh: line 2: `{ split($2,a,/\./); curr = a[1]*10000 + a[2]*100 + a[3]}'
Что вы попробовали? Потому что я думаю, что это должно сработать. –
Обновить сообщение. Не используйте комментарий. И похоже, что вы просто забыли указать свой аргумент awk script. –
Что значит, что содержание rst.awk не гарантируется неизменным? (Очень легко сделать файлы и их каталоги неназванными, таким образом, «блокировать» содержимое файла.) –