shell文本处理——最基本方法压缩js文件

来源:互联网 发布:工业机器人编程语言co 编辑:程序博客网 时间:2024/06/05 04:54

关于javascript代码文件的压缩在之前的文章中提到过(http://blog.csdn.net/u010487568/article/details/19701575),一般来说有三种方式:

  • 仅压缩空白、注释等字符(最基本方法)
  • 压缩空白、注释并替换变量名
  • 压缩恐怖、注释、替换变量名,同时最小化文件所有的单词
最近在进一步学习shell,对这个古老的工具越发的感到高效便捷,因此对于这个主题实现了shell版本的最基本方法的实现。
主要的策略如下:
  • 去除单行注释
  • 去除换行符和制表符
  • 压缩多个空格为单个
  • 去除多行住处内容
  • 将“ (”、“  )”、 “{  ”、“  }”、 “  ;  ” 、“ : ” 、“  =  ”等字符两侧空格去除
具体实现如下:
##!/usr/bin##########################################################Filename: compreee-js.sh#Author  : Oshyn Song#Time    : 2014-8-19#Desc    : compress the javascript file by basic method########################################################if [ $# -ne 1 ];then  echo "Usage: sh $0 js-filename";  exit;fijsfile=$1;echo "Compress $jsfile start ...";  cat -s $jsfile      | \  sed 's!//.*$!!g'    | \  tr -d '\n\t'        | \  tr -s ' '           | \  sed 's!/\*.*\*/!!g' | \  sed 's! \?\([+=\!&%$\*\|><{}();,:]\) \?!\1!g'  >  "compress.${jsfile}";echo "process finished.";

测试如下:
原生代码
;(function(){function __(id){return document.getElementById(id);}function Ajax(options){if (typeof XMLHttpRequest == 'undefined'){XMLHttpRequest = function(){return new ActiveXObject(navigator.userAgent.indexOf('MSIE 5') >= 0 ?'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP');};}..........
压缩后代码:
;(function(){function __(id){return document.getElementById(id);}function Ajax(options){if(typeof        XMLHttpRequest=='undefined'){XMLHttpRequest=function(){return new ActiveXObject(navigator.userAgent.indexOf('MSIE 5')>=0 ?'Microsoft.XMLHTTP':'Msxml2.        XMLHTTP');};}.......

0 0
原创粉丝点击