如题目那句话,对于一个在LINUX工作的人来说,shell,sed,grep,python等的东西是非学不可的,另外就是正则表达式,不说精通,了解很多基本用法后会使工作效率成倍的提高!~
就比如今天的一个操作,对于一个文件夹下所生成的几个类别特征项文件,只需要在第一行末,接一个空格,加上该类特征词数,均为300,(原来程序没有写入,可以再改C++程序重写),这样意味着重新训练一边50W文件的库,时间约为1小时.如果直接用sed 来做会简单得多!~
sed "1 s/$/ 300/" filename
这就是单个文件第一行末尾替换,既追加300的方式.然而一个一个做显然比较愚蠢,直接再加上shell编程的方法:
for i in ./* ;do sed "1 s/$/ 300/" $i >$i;done
注意:这样好象是不错,但是对于sed来说可能是缓冲区的原因,不能将$i直接再写回$i,否则该文件为空.这点大家要小心,容易毁坏数据.
正确写法:
for i in ./* ;do sed "1 s/$/ 300/" $i >$i.txt;mv $i.txt $i; done
这样就搞定,呵呵以后我会陆续将工作中碰到的例子贴上来,作为经验记录,常练回有收获的.
另外,今天发现了OPERA9这个浏览器用得很爽,用户个性化不错,而且占用资源相对较少,打开网页速度也挺快的,又对OPERA9 VS IE,小测试了一把资源使用状况,哈哈,现在是见什么就想测试比较啦职业病:)
发现:同时打开4个同样(比较庞大)的窗口,IE居然占内存110M,CPU使用率90%;OPERA 40多M,CPU 10%.也许不能充分说明问题,但一定程度上反映出了差别!~以后,使用浏览器的先后顺序为:OPERA9,FIREFOX,IE.IE不到写SPACE也完全可以躺着睡大觉了!
就比如今天的一个操作,对于一个文件夹下所生成的几个类别特征项文件,只需要在第一行末,接一个空格,加上该类特征词数,均为300,(原来程序没有写入,可以再改C++程序重写),这样意味着重新训练一边50W文件的库,时间约为1小时.如果直接用sed 来做会简单得多!~
sed "1 s/$/ 300/" filename
这就是单个文件第一行末尾替换,既追加300的方式.然而一个一个做显然比较愚蠢,直接再加上shell编程的方法:
for i in ./* ;do sed "1 s/$/ 300/" $i >$i;done
注意:这样好象是不错,但是对于sed来说可能是缓冲区的原因,不能将$i直接再写回$i,否则该文件为空.这点大家要小心,容易毁坏数据.
正确写法:
for i in ./* ;do sed "1 s/$/ 300/" $i >$i.txt;mv $i.txt $i; done
这样就搞定,呵呵以后我会陆续将工作中碰到的例子贴上来,作为经验记录,常练回有收获的.
另外,今天发现了OPERA9这个浏览器用得很爽,用户个性化不错,而且占用资源相对较少,打开网页速度也挺快的,又对OPERA9 VS IE,小测试了一把资源使用状况,哈哈,现在是见什么就想测试比较啦职业病:)
发现:同时打开4个同样(比较庞大)的窗口,IE居然占内存110M,CPU使用率90%;OPERA 40多M,CPU 10%.也许不能充分说明问题,但一定程度上反映出了差别!~以后,使用浏览器的先后顺序为:OPERA9,FIREFOX,IE.IE不到写SPACE也完全可以躺着睡大觉了!

添加到雅虎收藏