как awk ввести пользовательский ввод [дубликат]

Вы можете размонтировать их, если хотите дополнительной безопасности, используйте команду sync перед размонтированием

1
03.01.2019, 16:43
2 ответа

Ваш код:

echo "Enter peak value"
read peak
awk '/${peak}/{c=3}c&&c--' consolelog.log > testing.txt

Это не работает, потому что сильные кавычки не позволяют оболочке выполнять раскрытие переменных. Это хорошо, потому что awkиспользует много синтаксиса, который очень затруднил бы использование слабых кавычек.

Однако существуют способы использования переменных окружения в скрипте awk.

Вы можете объявить собственную переменную:

read peak
awk -vpeak="$peak" '$0 ~ peak { c=3 } c&&c--' consolelog.log > testing.txt

Или вы можете просто сказать awkпосмотреть на тот, который вы только что использовали readдля заполнения:

read peak
export peak
awk '$0 ~ ENVIRON["peak"] { c=3 } c&&c--' consolelog.log > testing.txt
0
28.01.2020, 02:11
echo "Enter peak value"
read peak
awk '/'"${peak}"'/{c=3}c&&c--' consolelog.log > testing.txt

Попробуйте это.

Вам нужно закрыть одинарные кавычки, а затем вы можете использовать свою переменную Bash. Я рекомендую помещать его в двойную -кавычку, потому что в противном случае это вызовет проблемы с другими аргументами awk.

-1
28.01.2020, 02:11

Теги

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