Печатать строки, содержащие точное слово, а не регулярное выражение [duplicate]

Буквально самый простой способ исправить NullReferenceExeption имеет два пути. Если у вас есть GameObject, например, с прикрепленным скриптом и переменной с именем rb (rigidbody), эта переменная начнет пустую, когда вы начнете игру. Вот почему вы получаете NullReferenceExeption, потому что на компьютере нет данных, хранящихся в этой переменной.

В качестве примера я буду использовать переменную RigidBody. Мы можем добавить данные действительно легко на самом деле несколькими способами:

  1. Добавить RigidBody к вашему объекту с помощью AddComponent> Физика> Rigidbody Затем зайдите в свой скрипт и введите rb = GetComponent<Rigidbody>();. Эта строка кода работает лучше всего под ваши функции Start() или Awake().
  2. Вы можете добавить компонент программно и назначить переменную одновременно с одной строкой кода: rb = AddComponent<RigidBody>();

Дальнейшие заметки: если вы хотите, чтобы единство добавлялось компонент для вашего объекта, и вы, возможно, забыли добавить его, вы можете ввести [RequireComponent(typeof(RigidBody))] над объявлением класса (пробел ниже всех ваших приложений). Наслаждайтесь и получайте удовольствие от игр!

65
задан paxdiablo 14 July 2010 в 03:23
поделиться

5 ответов

Вы можете использовать grep для этого с опцией -F.

-F, --fixed-strings       PATTERN is a set of newline-separated fixed strings
93
ответ дан Scott Stafford 27 August 2018 в 23:44
поделиться
  • 1
    "фиксированные строки, разделенные новой строкой" . Как это сделать в командной строке терминала? Я знаю, что могу создать файл шаблона, но без файла, можно ли это сделать в подсказке? Нажатие Enter явно выполняет команду. – ADTC 7 December 2015 в 10:21
  • 2
    Я отвечу на свой вопрос. :) Вам просто нужно предоставить несколько фиксированных строк, используя повторы опции -e. Вот так: grep -F -e "fixed1" -e "fixed2" -e "fixed3" -e "fixed4". Не требуется новых строк;) – ADTC 7 December 2015 в 10:30
  • 3
    Недоступно в Solaris. Вместо этого используется fgrep. – majkinetor 17 June 2016 в 11:29
  • 4
    @ADTC Я узнал, что мне пришлось использовать одинарные кавычки для искомой строки, содержащей только специальные символы, иначе ничего не будет найдено. Таким образом, это не дало результата: grep --include=\*.php -FRn -e "$$" Использование одиночных кляев дало мне желаемый результат: grep --include=\*.php -FRn -e '$$' – Piemol 15 November 2017 в 14:16
  • 5
    Вы являются правильными @ADTC. $ и несколько других символов являются специальными, и они будут заменены bash после того, как вы нажмете enter и до grep (или любой другой команды). Вы можете сказать bash оставить все символы (кроме одной цитаты) нетронутыми, включив их в одинарные кавычки. Если вам нужно ввести одну цитату, сделайте это так 'I'\''m special' – ndemou 2 December 2017 в 11:51
cat list.txt
one:hello:world
two:2:nothello

three:3:kudos

grep --color=always -F"hello

three" list.txt

выход

one:hello:world
three:3:kudos
0
ответ дан Bhargav Rao 27 August 2018 в 23:44
поделиться
  • 1
    Это ничего не добавляет к существующему принятому ответу. – Toby Speight 9 March 2016 в 13:03
  • 2
    Я не согласен. Это полезная иллюстрация того, как это работает. – timwaagh 5 September 2017 в 12:44

вы также можете использовать awk, поскольку он имеет возможность находить фиксированную строку, а также возможности программирования, например только

awk '{for(i=1;i<=NF;i++) if($i == "mystring") {print "do data manipulation here"} }' file
3
ответ дан ghostdog74 27 August 2018 в 23:44
поделиться

Передать -F в grep.

2
ответ дан Ignacio Vazquez-Abrams 27 August 2018 в 23:44
поделиться

Это либо fgrep, либо grep -F, которые не будут выполнять регулярные выражения. fgrep идентичен grep -F, но я предпочитаю не беспокоиться о аргументах, будучи внутренне ленивым: -)

grep   ->  grep
fgrep  ->  grep -F  (fixed)
egrep  ->  grep -E  (extended)
rgrep  ->  grep -r  (recursive, on platforms that support it).
7
ответ дан paxdiablo 27 August 2018 в 23:44
поделиться
  • 1
    Для GNU grep fgrep предоставляется только как символическая ссылка на grep, что заставляет его принимать -F – Daenyth 14 July 2010 в 03:12
  • 2
    egrep и fgrep не указаны стандартом POSIX; grep -F и grep -E являются – Richard Hansen 31 January 2012 в 23:20
Другие вопросы по тегам:

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