я в `cat file` читал переменную из регулярного выражения AWK

Часть ответа заключается в том, чтобы хранить индекс имен пользователей, которые вы проверяете в своих правилах безопасности:

app : {
    users: {
       "some-user-uid": {
            email: "test@test.com"
            username: "myname"
       }
    },
    usernames: {
        "myname": "some-user-uid"
    }
}

Таким образом узел usernames сопоставляет имя пользователя с uid. Он по существу читает, что «имя пользователя« myname »принадлежит« some-user-uid ».

С помощью этой структуры данных ваши правила безопасности могут проверить, есть ли уже запись для данного имени пользователя:

"users": {
  "$uid": {
    ".write": "auth !== null && auth.uid === $uid",
    ".read": "auth !== null && auth.provider === 'password'",
    "username": {
      ".validate": "
        !root.child('usernames').child(newData.val()).exists() ||
        root.child('usernames').child(newData.val()).val() == $uid"
    }
  }
}

Это подтверждает, что имя пользователя еще не заявлено кем-либо еще, или оно заявлено текущим пользователем.

-2
задан Marcus 15 January 2019 в 17:52
поделиться

1 ответ

Во-первых, ср. эта страница , чтобы объяснить, почему не использовать

for i in `cat list1.txt`

... когда-либо.

Во-вторых, это , почему бы не использовать

cat list2.txt | awk ...

Извините за арфу. Теперь ... попробуйте

while read -r val || [[ -n "$val" ]] 
do awk "/$val/ { flag=1; next } /Flag2/ { flag=0 } flag" list2.txt
done < list1.txt

awk в двойных кавычках ... не идеально. Или, как предлагает Чарльз, используйте -v (всегда слушайте Charles & amp ... Ed ...)

while read -r val || [[ -n "$val" ]] 
do awk -v i="$val" '
     [113] ~ i  { flag=1; next } 
     /Flag2/ { flag=0; }
     flag
   ' list2.txt
done < list1.txt

Все еще ожидая выборки файлов. Пожалуйста, , взгляните на формат этих файлов, чтобы я мог запустить действительный тест.

Обратите внимание, что || [[ -n "$val" ]] необходимо только в том случае, если есть вероятность, что в последней записи не будет перевода строки.

0
ответ дан Paul Hodges 15 January 2019 в 17:52
поделиться
Другие вопросы по тегам:

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