订阅我
2010-09月 日 一 二 三 四 五 六 « Aug 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 分类
标签
Archlinux ATI AutoPager awk COD4 convert CS css CS地图 D-Fend Reloaded dns DOS Echofon Eclipse Firefox FireGestures Flashgot Geasemonkey Gimp glade Google Google Reader GPRS Greasemonkey Grub GTK GtkRadiant Hacking iso2grub isolinux KDE Ksnapshot mplayer Newsfox Nexuiz Nin1LinuxCD python Shell stylish twitter Ubuntu Vim VirtualBox wine 代理链接
版权
按标签归档:awk
用awk命令快速分割文本
下了一堆小说,每部都是一个txt文件,放到手机上看不方便,需要把它们按章节分割开来,文件名要是章节名称,不但要文件名是章节名称,而且要每部小说分别放到同名的文件夹里去。手动分割是不可能的,太麻烦了。程序员嘛,就要编程来解决。 看起来难度挺高的,所以我准备写脚本来解决了,开始尝试用grep、do、while、read、sed判断每行内容分别处理,之前折腾合并字幕时,就觉得这样很慢很没效率,那是觉得awk相当的强悍,折腾了半天,查了无数次手册,最后还是一句awk命令解决。 注意:因为WPMU有讨厌的引号转换问题,目前无法解决,所以下面有几个命令因引号被转换成中文引号而失效,点击这里查看脚本原文
awk的printf语句遇百分号问题
几天前我写了一个一行合并字幕的命令,如下 awk ‘{if ($0 ~ “^[1-9][0-9]*$|–>”) {print $0} else {if ($0 ~ “^$”) {print “\n”} else {printf $0″ “}}}’ 结果发现了一个bug,测试后,原因是某一行如果有“%”这个符号的话printf语句输出可能会出错,与“%”后的单词有关,出错的那一行会忽略掉。
