作者mdchiou (晴矢)
看板Linux
标题Re: [问题] 如何使用shell script开启档案,并执行쀠…
时间Wed Aug 15 20:06:46 2007
※ 引述《mdchiou (晴矢)》之铭言:
: ※ 引述《iswearwang (^_^)》之铭言:
: : 我这边的档案有好几百个...而且命令都是在注解里面...
: : 比如a.txt里的内容为 /*
: : #>ls
: : */
: : 每个档案里面都有各自的命令...我想要把每个档案里的命令撷取出来,存成一个list
: : 在从这个list里面....一个一个去执行这些命令
: : 因为数量众多...所以才要想写一个script
: : 谢谢
: 如果注解的开头确定是 #>
: 那麽我会用如下的方法
: cat *.txt | grep "#>" | sed s/#\>// | out_script.sh
不好意思,这里打错了, | out_script.sh 要改成 > out_script.sh
既然错了,就顺便简单说一下 | 与 > 好了。
| 是管线,也就是把输出(通常是显示器) 做为下一个程式的输入,
所以 | 的後面至少要接一个指令或是程式。
> 是输出转向,把原来要输出的东西(通常还是显示器)转到别的地方去。
可以是设备,例如印表机lpr。或是黑洞(就是丢进去就消失了) /dev/null
也可以是一个档案,例如本范例 out_script.sh 。
>>如果是丢到档案去,又不想把原来的资料盖掉,那就给>>表示附加到原有的档案去。
啊如果我很贪心的想要把原来的东西一边秀到显示器一边还要存档怎办:
有二个方法啦:
第一个方法就
先执行 cat *.txt | grep "#>" | sed s/#\>//
再执行 cat *.txt | grep "#>" | sed s/#\>// > out_script.sh
第二个方法就
cat *.txt | grep "#>" | sed s/#\>// | tee out_script.sh
这个 tee 就读做"T",把它想成是T型管,把本来的东西偷偷分流到out_script.sh
以上 希望唬这麽多能够弥补那个打错的地方…
: 如果运气好,out_script.sh 应该会是你要的啦…
: 那麽你就执行 out_script.sh 就好了
: 执行方式有二:chmod 或是 sh out_script.sh
: 以上~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.77.91
1F:→ Socrates:T 型管... hahaha~~ 这个说法真有趣 XD 08/15 20:08
2F:→ Socrates:那我也来说一下, tee 在一般使用者模式想用要 sudo 写入 08/15 20:10
3F:→ Socrates:到其他权限的时候很有用,很难说明白,举个例来说 08/15 20:10
4F:→ Socrates:$ sudo echo "meow" > /etc/dog 这样会写入失败 08/15 20:11
5F:→ Socrates:$ sudo echo "meow" | sudo tee /etc/dog 这样就可以了! 08/15 20:13
6F:→ Socrates:另外 tee -a 就像是 >> ,就是 append 在档案後面 08/15 20:14