/*******************************************************************• 此文章解释权归windsome所有,如要转载无须联系本人。• 转载需要包含此抬头信息,如有疑问,欢迎联系本人。• QQ: 35327864• msn: fgwf1@hotmail.com• mail: agooou@gmail.com ********************************************************************/1, 遍历一个目录:foreachf () { echo $1 for file in $1/* do if [ -f $file ] then echo "checking $file ..." fi done}foreachf /home/windsome2, 得到一个文件的文件名或路径,并返回给一个变量:file=/home/windsome/lib/libSTL.so.1base1=`basename $file`echo "$base1"path1=`dirname $file`echo "$path1"3, 将aaa.dat 转换成aaa.jpg,并赋值给tofile.file=aaa.dattofile=`echo $file | awk -F. '{print $1".jpg" }'`4, 将/home/media/cache目录下所有文件扩展名改为jpg.foreachf () { echo $1 for file in $1/* do if [ -f $file ] then tofile=`echo $file | awk -F. '{print $1".jpg" }'` echo $tofile mv $file $tofile echo "checking $file ..." fi done}foreachf /home/media/cache5, 查找本目录及子目录下文件中的"BUILD_WITH",忽略.git下的文件.find . -path "*/.git" -prune -o -print | xargs grep "BUILD_WITH" -n6,查找本目录及以下级目录中*.h和*.cpp文件中的"AudioStreamOut"find -name "*.h" -or -name "*.cpp" | xargs grep "AudioStreamOut" -n7,shell中得到某个文件的大小size=$(find -name mmc_linux_partition.raw -printf %s) count=$(($size/512)) #除法运算echo $count8,判断字符串是否为空if [ -z $i ]; then echo "$i 是空字符串"fi9,读取文件的指定行字符串sed -n Np 文件名其中,"N"必须替换成一个数字,例如,你要取文件1.txt的第7行,命令为: sed -n 7p 1.txt输出结果即为指定行内容。10,shell中读取文件行数awk '{print NR}' a.txt | tail -n1 11,判断路径是否存在,不管是文件还是目录if [ -e /root/temp ]; thenelsefi12,退出shell的for循环,只退一层 for file in $1/* do if [ -f $file ]; then break fi done13,继续循环的下一项 for file in $1/* do if [ -f $file ]; then continue fi done14, 查看本目录有多少行程序 wc -l *.cwc -l *.c
