linux 下常用命令和脚本(持续添加)
判断是否为文件或者目录
if [ -d dir ] //注意[之后加空格
if [ -f file ]
- for file in `ls $1`
- do
- if [ -d $1"/"$file ]
- then
- echo "is dir"
- else
- echo "is file"
- fi
- done
常用的排序命令
cat $1 |sort -n|uniq -c > $2 (对指定文件按照数字排序,并求和)
遍历目录中所有文件,并保存数组中,数组要用{}包含起来,否则取得的是第一项。
${array[*]}: 全部元素
${array[@]}:数组长度
${array[$i]}:数组第i个元素
如果写成了$array[$i],则取得首项的第i个元素
- #!/bin/sh
- dir=$1
- filelist=`ls $dir` //赋值语句之间不能有空格
- array=($filelist)
- if [ -d tmp_result ]
- then
- rm -rf tmp_result
- fi
- mkdir tmp_result
- for ((i=0;i<${#array[@]};i++));do
- sh sort.sh $dir${array[$i]} ./tmp_result/${array[$i]}
- echo $i
- done
http://blog.sina.com.cn/s/blog_4152a9f501013r6c.html(参考,写的比较全面)
拷贝文件到指定目录copyFiles.sh
- #!/bin/sh
- input=$1
- output=$2
- for file in `ls $input`
- do
- echo $file
- if [ ! -d $file ]; then
- mv $file $output
- fi
- done
常用的shell命令:
统计文件夹中所有文件的总行数,find ./ -type f | wc -l
或者
find ./ -type f |xargs wc -l | awk 'BEGIN{sum = 0} { if ( $2 != "total" ) {sum += $1;} } END{print sum}'
2. 统计单词出现的次数
cat part-m-00000 | awk -F [' '+] '{if (length($0)<24){for(i=1;i<=NF;i++) {print $i;}}}' | sort | uniq -c | sort -k1nr | head -n 100
3. 统计query出现的次数
cat *brand-queries/* | awk -F'\t' '{a[""$1]++;} END{for(k in a) print k"\t"a[k];}' > brand_match_count.txt

浙公网安备 33010602011771号