awk - быть введенными и из файла и из STDIN?

откройте файл /etc/security/limits.conf и добавьте строку <user> soft nofile <value>. для использования ulimit изменитесь на пользователя root и попробуйте то же.

4
13.11.2012, 01:36
2 ответа

Можно читать из /dev/tty или от /dev/stdin.

getline choice < "/dev/tty"

/dev/tty довольно повсеместно (даже один очень немногие, наряду с /dev/null и /dev/console требоваться POSIX), /dev/stdin менее распространено, но по крайней мере GNU awk распознал бы его как значение stdin, даже если система не имеет такого файла устройства / специального файла.

На Linux (и Cygwin, но не другой Unix - любит), читая из /dev/stdin не то же как читающий из stdin (fd 0), но вместо этого означает читать из того же файла как открытый на fd 0. Если бы тот файл является регулярным файлом, например, который начал бы читать из запуска файла вместо где fd 0 в настоящее время точки к в файле.

Поскольку GNU awk дескрипторы соединяют каналом как /dev/stdin отдельно (и обработка это как читающий из stdin), на Linux или Cygwin это вело бы себя по-другому по сравнению с другими приложениями, которые не делают той специальной обработки. Если Вы хотели поведение Linux/Cygwin в gawk (который здесь вероятно не Ваш случай), Вы могли или использовать ///dev/stdin или /dev/./stdin для gawk прекратить распознавать его как /dev/stdin особый случай, или вероятно лучше здесь, если Вы намереваетесь полагаться на определенное поведение Linux/Cygwin, использует определенное Linux/Cygwin /proc/self/fd/0 путь (который /dev/stdin на самом деле символьные ссылки на в тех системах).

6
27.01.2020, 20:50

Как видно из , - также работает:

getline < "-"

Или

getline variable < "-"
2
27.01.2020, 20:50

Теги

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