Grep с файлом переменной причины с пустыми данными - PullRequest
1 голос
/ 18 апреля 2019

Когда я использую эту команду в сценарии:

grep -A 12 -B 37 "1000221411" /home/ashb/20181007/soap_nohup_20181007_0*.log | awk '{$1=""}1' > abcdef.txt

Но когда я пытаюсь поместить переменные, чтобы найти больше идентификатора в файлах журнала:

grep -A 12 -B 37 ${b} /home/ashb/20181007/soap_nohup_20181007_0*.log | awk '{$1=""}1' > abcdef.txt

Тогда файл abcdef.txt окажется пустым файлом. Я пытаюсь echo ${b}, и это на моем пути. как я могу это исправить? Ввод ${b}:

1000221411
1000248725
1000287875
1000296552

Ответы [ 2 ]

0 голосов
/ 19 апреля 2019

Похоже, что ${b} означает , что означает как массив, поскольку он содержит 9 чисел. Проблема с кодом выше:

  1. ${b} без кавычек, поэтому grep получает слишком много 8 параметров.

  2. Если бы кавычки ${b} были указаны, grep нашел бы только числа 9 в том же порядке. Но grep не найдет ничего в файле только с одним из этих чисел.

0 голосов
/ 19 апреля 2019

Похоже, это то, что вы пытаетесь сделать:

$ cat file
foo
1000221411
bar
1000296552

$ echo "$b"
1000221411
1000248725
1000287875
1000296552

$ grep -f <(echo "$b") file
1000221411
1000296552
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...