다양한 명령을 통한 파이프라인 문서 조각

다양한 명령을 통한 파이프라인 문서 조각

$$$다양한 명령(수정자와 함께)을 통해 기사의 일부를 전송하고 싶습니다 (예를 들어 이스케이프 시퀀스 사용 가능). 표준 입력은 해당 표준 출력으로 대체됩니다. (필요한 경우 sed를 사용하여 매우 구체적인 수정자를 제거할 수 있을 만큼 간단해야 합니다.)

저는 Python으로 이 작업을 수행할 수 있다고 믿습니다. 하지만 제가 모르는 특별한 UNIX 도구나 기술이 90%의 트릭을 우아하게 수행할 수 있는지 궁금합니다.

보다 구체적으로 다음 문서를 고려하십시오.

$$$ figlet -f script
Title
$$$

Now it's time to visualize the cosine function:

$$$ gnuplot
set terminal dumb
plot cos(x)
$$$

Finally, a simple directed graph:

$$$ graph-easy
digraph G {
A -> B;
}
$$$

내 프로그램을 실행한 후 다음을 얻습니다.

 ______     _
(_) |o     | |
    |  _|_ | |  _
  _ ||  |  |/  |/
 (_/ |_/|_/|__/|__/


Now it's time to visualize the cosine function:


    1 ++----------***--+---------------****---------------+--***----------++
      +          *   * +               * +*               + *cos(x) ****** +
  0.8 ++        *    *                *    *                *    *        ++
      |         *     *               *     *               *    *         |
  0.6 ++        *     *              *      *              *     *        ++
      |        *       *             *      *             *       *        |
  0.4 ++       *       *             *       *            *        *      ++
      |       *        *            *        *            *        *       |
  0.2 ++      *         *           *         *           *        *      ++
      |       *         *          *          *          *         *       |
    0 ++      *          *         *          *          *          *     ++
 -0.2 ++     *           *         *          *         *           *     ++
      |      *            *        *           *        *            *     |
 -0.4 ++    *             *       *            *       *             *    ++
      |     *             *      *              *      *             *     |
 -0.6 ++    *             *      *               *     *              *   ++
      |    *               *    *                *    *               *    |
 -0.8 *+  *                 *   *                *   *                 *  +*
      +* *             +    *  *         +        *  *    +             * *+
   -1 +***-------------+-----**----------+---------**-----+-------------***+
     -10              -5                 0                5                10


Finally, a simple directed graph:

+---+
| A |
+---+
  |
  |
  v
+---+
| B |
+---+

어떤 아이디어라도 크게 감사하겠습니다. 진심으로 감사하고 응원합니다!

답변1

그리고&(을 위한여기에 있는 문자열 <<<특징):

awk '
    /^\$\$\$/{
        sub(/\$\$\$/, "")
        cmd=$0
        next
    }
    { arr[cmd]=arr[cmd] $0";"}
    END{
        for (a in arr) {
            if (a ~ ".") {
                exe=sprintf("%s", a " <<< \042" arr[a] "\042" )
                system(exe)
            }
            else{
               print arr[a]
            }
        }
    }' file

산출:

    1 ++----------***--+---------------****---------------+--***----------++
      +          *   * +               * +*               + *cos(x) ****** +
  0.8 ++        *    *                *    *                *    *        ++
      |         *     *               *     *               *    *         |
  0.6 ++        *     *              *      *              *     *        ++
      |        *       *             *      *             *       *        |
  0.4 ++       *       *             *       *            *        *      ++
      |       *        *            *        *            *        *       |
  0.2 ++      *         *           *         *           *        *      ++
    0 ++      *         *          *          *          *         *      ++
      |       *          *         *          *          *          *      |
 -0.2 ++     *           *         *          *         *           *     ++
      |      *            *        *           *        *            *     |
 -0.4 ++    *             *       *            *       *             *    ++
      |     *             *      *              *      *             *     |
 -0.6 ++    *             *      *               *     *              *   ++
      |    *               *    *                *    *               *    |
 -0.8 *+  *                 *   *                *   *                 *  +*
      +* *             +    *  *         +        *  *    +             * *+
   -1 +***-------------+-----**----------+---------**-----+-------------***+
     -10              -5                 0                5                10

;;;Now it's time to visualize the cosine function:;;;Finally, a simple directed graph:;;
+---+
| A |
+---+
  |
  |
  v
+---+
| B |
+---+
 ______     _       
(_) |o     | |     o
    |  _|_ | |  _   
  _ ||  |  |/  |/   
 (_/ |_/|_/|__/|__/o
                   /

약간의 수정만으로 귀하의 요구에 100% 적합하다면 별 문제가 되지 않습니다.

관련 정보