$$$
다양한 명령(수정자와 함께)을 통해 기사의 일부를 전송하고 싶습니다 (예를 들어 이스케이프 시퀀스 사용 가능). 표준 입력은 해당 표준 출력으로 대체됩니다. (필요한 경우 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% 적합하다면 별 문제가 되지 않습니다.