У меня есть файл тестовых данных, как следующийПочему результат от AWK, похоже, не работает
PAT1 3 - first block 4 PAT2 PAT3 7 - second block PAT4 PAT5 10 - third block PAT6 PAT7 12 - forth block
Если я запускаю следующую команду из оболочки, чтобы найти линии между pat1 и PAT5, включая строки, содержащие две строки , он отлично работает с shell prompty.
awk '/PAT1/, /PAT5/ ' test_file
Результаты следующие:
PAT1 3 - first block 4 PAT2 PAT3 7 - second block PAT4 PAT5
Но если я хочу, чтобы выполнить эту командную строку AWK в файл сценария оболочки, он больше не работает и ничего не в results.txt файле.
#!/bin/sh
Data="PAT1"
Data2="PAT2"
echo "$Data, $Data2"
awk '/$Data/, /$Data2/' test_file > results.txt
Я считаю, что синтаксис awk-кода неверен в сценарии оболочки. Я попытался прочитать страницу link, но я не мог быстро понять, что не так с awk-кодом в моем сценарии оболочки.
Вы правы. Двойная цитата «исправлена моя проблема. Большое спасибо! –