Как сохранить в переменной преобразование от десятичного числа до двоичного файла без использования эхо

Вот один из способов Perl:

perl -ne 'if (/^adc\s+\w+\s+(\w+)/) { print "Name: $1\n" }
          elsif (/^\s*rules\s*{/) { $inrule = 1; }
          elsif (/}/) { $inrule = 0; }
          elsif (/^\s*(\S*)/) { print "Rule: $1\n" if $inrule; }'

это проходит через каждую строку файла, печатает имя : Линия, когда Он видит линию ADC , а затем делает плохую попытку распознавания Правила {} Блоки, печать каждую строку из них как правило: .

Было бы гораздо более надежно использовать правильный парсер для вашего ввода формат; Этот одноклассник сломается, если макет не совсем так, как в ваш вопрос.

0
19.04.2015, 18:40
3 ответа

Вы можете сделать это, используя выходное перенаправление , как показано ниже.

$ bc -l <<<"obase=2;$num" > register.txt

Вышеуказанная команда перезаписывает любые более старые результаты. В случае, если вы хотите добавить ваши результаты.

$ bc -l <<<"obase=2;$num" >> register.txt

>> - перенаправляющие вывод (stdout) сообщений в режиме Append.

> - Перенаправить вывод (stdout) сообщения в режиме перезаписания.

<<< - ЗДЕСЬ Строки, слово расширяется и подается в команду на его стандартном входе.

0
28.01.2020, 04:58

Вместо того, чтобы использовать TEE, просто используйте I / O-Redirection оболочки:

echo "obase=2;$num1" | bc >>register.txt

>> - Spectement вызывает перенаправленные вывод (> Перенаправить, >> Добавление) в файл. Флаг - флаг TEE вызывает также приложение к файлу. Вам нужно только Tee , если вы хотите, чтобы вывод был показан в оболочке и , перенаправляемый в файл.

0
28.01.2020, 04:58

Команда tee предназначена для разделения вывода, чаще всего используемая для получения текста в файл и на экран.

Просто оставьте это и используйте выходное перенаправление (дополнение) к файлу с помощью >> :

echo "obase=2;$num1" | bc >> register.txt
0
28.01.2020, 04:58

Теги

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