文章标签 » shell

批量替换css里图片的相对路径为绝对路径

最近好像总是发些shell的东西,木办法,最近没怎么写js的样子…
————————————————————–
恩,之所以要替换成绝对路径,是因为css和图片host在不同域的server上,写完刚在站里的静态跑过,好像木啥大问题~
效果:

/img/a.gif 会被替换成 http://domain/img/a.gif
../img/a.gif 会被替换成类似 http://domain/parent/img/a.gif

使用方法如下(linux only)

#直接跟目录就好了
sh r2a.sh /opt/static

脚本下载点这里:r2a.zip
贴出shell的源码,便于不想下载又想看看shell的同学,还有个python脚本,就不贴了,没啥含量

#!/bin/sh
#@author emptyhua@gmail.com

#本地根目录
LROOT="/home/hualu/work/static"
#远程根目录
RROOT="http://myimgdomain.cn"
#要处理目录的绝对路径
CP="`cd $1;pwd`"
#用于转换相对路径为绝对路径的python脚本的路径
PY="/home/hualu/bin/get_sed_rule.py"
LROOTR="`echo ${LROOT} | sed 's/\\//\\\\\//g;s/\\./\\\\\\./g'`"
RROOTR="`echo ${RROOT} | sed 's/\\//\\\\\//g;s/\\./\\\\\\./g'`"

echo "执行路径${CP}"
find ${CP} -name "*.css" > /tmp/_r2a_css_files 

cat /tmp/_r2a_css_files | while read f;do
    echo "处理:${f}"
    dir="`dirname \"${f}\"`"
#获取css文件所在的发布目录
    echo "${dir}" | sed "s/${LROOTR}/${RROOTR}/" > /tmp/_r2a_remote_path
    remote_path="`cat /tmp/_r2a_remote_path`"
#收集要处理的图片路径
    cat $f | awk '{print NR,"####",$0}' | grep "url([\"\']*\.\{1,2\}" > /tmp/_r2a_file
    cat /tmp/_r2a_file | sed -e "s/url([\"\']*\(\.\.[^\)]*\)[\"\']*)/开始\1始开/g" -e "s/####[^始]*开始/:/;s/始开[^始]*$/:/;s/始开[^始]*开始/:/g" > /tmp/_r2a_cssimage
    echo '' > /tmp/_r2a_sed_rule
#将相对路径转换为绝对路径,并生成sed语句
    cat /tmp/_r2a_cssimage | while read r;do
        rule="`python \"${PY}\" \"${r}\" \"${remote_path}\"`"
        echo "${rule};" >> /tmp/_r2a_sed_rule 
    done
    sed_rule="`cat /tmp/_r2a_sed_rule | tr -d '\\n'`"
#利用sed处理文件
    sed -i -e "$sed_rule" "${f}"
    sed -i -e "s/url(\([\"\']*\)\//url(\1${RROOTR}\//g" "${f}" 
done

rm /tmp/_r2a_css_files
rm /tmp/_r2a_remote_path
rm /tmp/_r2a_file
rm /tmp/_r2a_cssimage
rm /tmp/_r2a_sed_rule

scp 保留文件权限

http://linux.chinaunix.net/bbs/viewthread.php?tid=912911

1 打包后,再用scp传过去就可以了,因为打包是保留权限设置信息,
2 用scp 传过去后, 到正确权限的主机是,备份权限, 再备份权限,
getfacl 获取当前正常系统的文件权限,到另一台机器上用 setfacl 恢复。
getfacl -R /root/test > acl.bak
把acl.bak的文件copy过来
setfacl --restore acl.bak

/dev/null 2>&1

http://viplin.blog.51cto.com/241472/99568

用于shell中屏蔽错误信息…

谷歌音乐shell版

2009.10.15 update
其实需要两个包支持

sudo apt-get install uni2ascii
sudo apt-get install gawk

———————————
一个可以快速听歌的东东,虽说是练手之作,但是当特别想听某首歌硬盘里又没的时候还是挺方便的~

这个脚本可以将谷歌音乐的的搜索结果显示到终端(支持关键词高亮和分页),选择某一歌曲的序号之后,脚本会获取该曲目的播放地址,并调用播放器播放,咔咔,就是这么简单

脚本运行需要uni2ascii这个包的支持,没有可以apt-get一下,播放器调用ubuntu自带的rhythmbox,可以根据情况修改

#使用方法
google_music.sh "周杰伦 花海"

下载点这里

截图:

2009-8-23 13-43-01

shell:批量网页截图

强哥的籲求:把一個目錄內所有的模板截圖并生成一個索引html

咔咔,原来小企鹅输繁体这么溜。。

极其ft的是,晚上问传业这事,丫直接给我看了某人的相册,四十多张人家早就手工截完了。。

脚本附上,暂不支持滚动截图,如果页面比较长就只能看半截
原理十分的简单,全屏一个浏览器,然后截屏

webshot.sh

使用方法:

#直接跟目录名,有些参数需要修改webshot.sh
webshot.sh ~/webdemos