2013-02-27 3 views
1

В Enterprise Guide 4.2 есть ли способ обновить ваше представление о файле, не удалив его из потока процессов, а затем снова его открыть?Как обновить вид файла

Мой Google-fu не предоставил ответа (так или иначе), и мой администратор SAS сказал, что он не знает пути (но чтобы сообщить ему, найду ли я его).

Определенный «нет» (из документации) или «да» с примером будет высоко оценен.


У меня есть файл журнала, который обновляется при запуске моей программы SAS из командной строки (вне EG). Я редактирую свой код внутри EG, и я хотел бы заглянуть в файл журнала, чтобы увидеть результаты. В настоящее время мне нужно удалить файл журнала из моего потока процессов, а затем снова открыть его, чтобы просмотреть обновленный журнал.

+0

ли вы имеете в виду файл SAS, или файл без SAS? – Joe

+0

Я бы не подумал, что это имеет значение, но это файл без sas (собственно, журнал). – JDB

+0

Я смущен вашим выбором слова (возможно, потому, что я в первую очередь человек базы SAS). Когда вы говорите «ваше мнение о файле», что вы имеете в виду конкретно; и что вы имеете в виду, когда говорите «refresh» - это то, что находится на сервере и работает независимо от вашего сеанса EG, и вы хотите периодически заглядывать? – Joe

ответ

1

С вашего последнего комментария к вашему вопросу, похоже, что вы запускаете неинтерактивную программу SAS на сервере (из сеанса PuTTY) и просматриваете файл журнала с вашим клиентом EG, это правильно? Если это так, есть гораздо более простые способы просмотра файла журнала.

Когда вы упомянете PuTTY, я предполагаю, что ваш сервер UNIX. Если это так, используйте команду tail с опцией -f. Например, если ваша программа SAS названа «myprog.sas», это создаст лог-файл с именем «myprog.log», поэтому попробуйте эту команду в командной строке UNIX:

tail -f myprog.log 

Опция -f означает продолжать записывая вывод в окно терминала, когда строки записываются в журнал. Когда вы устанете смотреть (или видите сообщение «конец задания SAS»), введите букву «q», чтобы выйти.

EG, предназначенный для приложения, которое вы используете для выполнения вашей программы SAS. Запуск вещей из приглашения UNIX выходит за рамки дизайна (и вы теряете все эти классные функции EG), а также пропускаете любые функции сайта, которые были настроены для вас в среде метаданных.

Если я полностью вне базы, уточните свой вопрос.

+0

Нет, ваш не вне базы. Я использую EG для разработки, но программы sas в конечном итоге переносятся в запланированную пакетную среду. Во время перехода на «производство» я запускаю программу из командной строки для имитации планировщика. EG остается самым простым способом просмотра журнала, за исключением того, что неудобно просматривать последние обновления. К сожалению, журналы имеют длину в несколько сотен строк, поэтому хвост не будет очень эффективным. – JDB

+0

Вы когда-нибудь использовали инструмент под названием WinSCP? При этом вы можете открыть файл журнала с вашего сервера и периодически обновлять его. Это то, что я делаю с моими производственными заданиями (журналы хранятся в каталогах приложений, в которых у меня есть доступ на чтение). – BellevueBob

+0

Моя компания довольно ограничительна, когда дело доходит до инструментов. У меня есть EG, а затем любые редакторы командной строки (например, vi). Я знаю, что EG не был предназначен для того, для чего я пытаюсь его использовать, но это все, что у меня есть. – JDB

0

При использовании SAS EG или SAS Studio на платформе SAS вычислительные узлы размещаются на машинах Linux, я всегда использую код для просмотра содержимого выходного файла, созданного SAS; Единственными требованиями являются то, что вы знаете полный путь к файлу, который хотите просмотреть, и что у вас есть привилегии для чтения с него.

Простая идея состоит в том, чтобы использовать общий шаг ВВОДА:

  1. доступ к файлу
  2. Читать построчно
  3. Фильтр данных, по содержанию, должность, номер строки и т.д.
  4. Вывести данные в журнал SAS, так что вы можете увидеть его там

Вот простой пример, чтобы вы собираетесь:

  • Сначала я создаю файл для теста. У вас уже есть это !, так что используйте ваш.

    /* create a test file */ 
    data _null_; 
        file '/folders/myshortcuts/test/file'; /* Note I'm using fullpath */ 
        put "The begining, :)"; 
        put "line 2 in my file is shy and likes to hide."; 
        put "line 3, all good so far."; 
        put "line 4 in my file is to remain private."; 
        put "Finally the last line in my file!"; 
    run; 
    
  • Тогда, вот код, чтобы прочитать его данные

    data _null_; 
        /*-------- 
        references which input file will be read 
        setting variable 'theEnd'=1 when 
        reaches end-of-file 
        Note I'm using fullpath 
        --------*/ 
        infile '/folders/myshortcuts/test/file' end=theEnd; 
    
        /*-------- 
        reads one line at a time from input file 
        storing it in variable _infile_ 
        --------*/ 
        input; 
    
        /*-------- 
        contents of file will be writen in the log, to keep it readable, 
        mark where the contents of the file will follow 
        --------*/ 
        if _n_=1 then 
        put "-----start file ----"; 
    
        /*-------- 
        filter out shy, private or unwanted data 
        --------*/ 
        if _n_ ne 4; /* continue only if row number is not 4 */ 
        if indexw(_infile_,"shy") le 0; /* continue only if data does not contains 'shy' */ 
    
        /*-------- 
        write the data you want, complete line read in this case 
        --------*/ 
        put _N_= "->" _infile_; 
    
        /*-------- 
        mark where the data in the file has ended 
        --------*/ 
        if theEnd then put "-----end file ----"; 
    run; 
    
  • Ваш журнал SAS будет выглядеть следующим образом:

    NOTE: The infile '/folders/myshortcuts/test/file' is: 
         Filename=/folders/myshortcuts/test/file, 
         Owner Name=sasdemo,Group Name=sas, 
         Access Permission=-rw-rw-r--, 
         Last Modified=11Jan2017:22:42:56, 
         File Size (bytes)=160 
    
    -----start file ---- 
    _N_=1 ->The begining, :) 
    _N_=3 ->line 3, all good so far. 
    _N_=5 ->Finally the last line in my file! 
    -----end file ---- 
    
    NOTE: 5 records were read from the infile '/folders/myshortcuts/test/file'. 
         The minimum record length was 16. 
         The maximum record length was 43. 
    NOTE: DATA statement used (Total process time): 
         real time   0.02 seconds 
         cpu time   0.03 seconds 
    
Смежные вопросы