wxMaxima: простой / эффективный метод печати содержимого нескольких файлов, чтобы его можно было скопировать в один блок?

#file #printing #wxmaxima

#файл #печать #wxmaxima

Вопрос:

Я собирал локальную библиотеку .mac файлов и вызывал их из одного .mac файла, содержащего push мой локальный каталог, а затем load для каждого отдельного скрипта.

Это отлично работает на моем рабочем столе; однако мне также нужно скопировать полное содержимое всех этих скриптов для использования в другом месте (где копии файлов в настоящее время не могут быть сохранены, но полные копии скриптов могут быть включены). Есть ли какая-нибудь команда в Maxima, которая позволила бы мне печатать содержимое нескольких файлов одновременно, чтобы я мог легко скопировать выходные данные и вставить их в другую среду maxima?

Я действительно ищу любой способ, который позволил бы мне сделать это, — это одна копия-вставка (против копирования-вставки каждого отдельного файла).

Ответ №1:

Я совершенно новичок в программировании, поэтому потребовалось некоторое время, прежде чем я понял, что это не обязательно должно быть достигнуто изнутри Maxima, но может быть сделано, например, с терминала или где-либо еще.

В частности, в macOS, используя терминал, просто перейдите в каталог, содержащий все файлы, и запустите команду конкатенации

     cat * > name_of_new_compiled_file.ext
 

создаст новый .ext файл, содержащий все файлы в текущем каталоге, благодаря подстановочному * знаку.

Порядок может не соблюдаться, в зависимости от шаблона для имен файлов, и для выборочного включения определенных файлов можно использовать следующие параметры (как описано в одном из ответов на на сайте unix / linux SE), приведенные ниже для удобства. Полная благодарность Флорину Идите, который опубликовал следующее краткое и полезное объяснение.


Допустим, у вас есть:

 ~/file01
~/file02
~/file03
~/file04
~/fileA
~/fileB
~/fileC
~/fileD
 

И вам нужны только file01 для file03 и fileA для FileC:

 cat ~/file01 ~/file02 ~/file03 ~/fileA ~/fileB ~/fileC > merged-file
 

Или, используя расширение фигурной скобки:

 cat ~/file0{1..3} ~/file{A..C} > merged-file
 

Или, используя более причудливое расширение фигурных скобок:

 cat ~/file{0{1..3},{A..C}} > merged-file
 

Или вы можете использовать цикл for:

 for i in file0{1..3} file{A..C}; do cat ~/"$i"; done > merged-file