问题描述:在一个目录下,有一堆文件,例如 afile.txt bpage.htm csome.jpg .... 想批量进行改名,都统一改为: name1.file name2.file name3.file ... 解决办法: $ ls | grep -n '' | sed 's//([0-9]*/):/(.*/)//2 name/1.file/g' | xargs -n 2 mv
用 ls | grep -n '' 可以对文件加上行号,输出结果为:1:afile.txt 2:bpage.htm ... 然后通过 sed 进行模式匹配、替换操作, 最后通过 xargs 构造出 mv 的参数。 Done. |
1.给当前目录下的所有.cpp文件增加一个.bak后缀的备份文件
#!/bin/sh
for file in `ls`
do
len=`expr length ${file}`
len_beg=`expr ${len} - 3`
if [ `expr substr ${file} ${len_beg} ${len}` = ".cpp" ]
then
mv ${file} ${file}.bak
fi
done
2.任选perl、shell、python或你熟悉的一种脚本语言实现,文件words存放英文单词(单词可以重复),统计这个文件中出现次数最多的前10个单词。
#!/bin/sh
cat word | sort | uniq -c | sort -n -r | head -n 10
本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/chenspnjupt1234/archive/2010/10/06/5923671.aspx