awk 'NR>2&&NR<5' Input_file
- это место, где мы проверяем условие, если номер строки больше 2 и больше 5, затем выполняем действие по умолчанию, которое печатает текущую строку.
В вашем коде awk '{print NR>2&&NR<5}' Input_file
, здесь вы используете print, а затем упоминаете условие, которое НЕ работает awk.
awk работает по методу:
Condition_check/regexp{action}
, если НЕТ никакого действия, то по умолчанию произойдет печать текущей строки, которая происходит в вашем первый код.
Дополнительный анализ: Чтобы доказать, что точка {print NR>2&&NR<5}
НЕ будет вести себя как метод по умолчанию awk
из regexp/condition_check{action}
, запустите:
awk '{print (NR>2&&NR<5)}' Input_file
Посмотрите на вывод, что он предоставит:
0
0
1
1
0
0
0
0
0
0
См. Строки 3 и 4, где 1
означает, что условие для этой строки - ИСТИНА, а 0
- условие для этой строки, - ЛОЖЬ. Таким образом, мы можем видеть, что он печатает состояние STATE в выражении print
, если мы используем условие в (..)
, как упомянуто выше.
Деликатный вопрос, у Вас есть 20/20 видение. C#/.NET не реализует оператор бросков (т.е. контролируемые исключительные ситуации).
Любой происходящий из языка, такого как Java, вероятно, задастся вопросом об этом.
Anders Hejlsberg, родительский элемент C#, объясняет объяснение позади упущения контролируемых исключительных ситуаций из C# в этой статье/интервью. Это - хорошее чтение.
От той статьи говорит Anders:
Беспокойство, которое я имею о контролируемых исключительных ситуациях, является наручниками, они ставят программистов. Вы видите, что программисты берут новые API, которые имеют все эти пункты бросков, и затем Вы видите, как замысловатый их код добирается, и Вы понимаете, что контролируемые исключительные ситуации не помогают им никто. Это - вид этих диктаторских разработчиков API, говорящих Вам, как сделать Вашу обработку исключений. Они не должны делать этого.
Так, как Mitch и монооксид сказали, документация MSDN для FCL.NET перечисляет исключения, относящиеся к каждому классу и также исключениям, возможным в каждом пространстве имен.
Если функция выдает исключение, она обычно перечисляется у основания офлайновой страницы справки, или в Обозревателе объектов. Это также перечислило только под информацией о том, как вызвать функции в библиотеке MSDN онлайн, например, строке. Содержит (), это маркировано как "Исключения".
Как дальнейшее, это - только функции, свойства, и т.д. которые на самом деле выдают исключения, таким образом, эти вещи не охвачены в общей документации, только в документации для функций или средств доступа, которые на самом деле бросают их, как в данном примере. Ваш лучший выбор состоит в том, чтобы иметь введение по абсолютному адресу вокруг обозревателя объектов в VS с class/es, которым Вы интересуетесь.
.NET не реализует ничего как ключевое слово 'бросков' в Java, таким образом, Ваш лучший выбор состоит в том, чтобы проверить документацию MSDN онлайн.
Править: если Вы смотрите на Пространство имен doco (для Системы. IO, например), это перечисляет возможные вызванные исключительные ситуации.