shell工作

两个文件求和,按照某咧

awk 'NR==FNR{a[$1]=$2;next}NR>FNR{if($1 in a) a[$1]+=$2 }END{for(x in a)print x"\t"a[x]}' 1.txt 2.txt

awk 'NR==FNR{a[$1]=$2;next}NR>FNR{if($1 in a) b[$1]=a[$1]+$2 }END{for(x in b)print x"\t"b[x]}' 1.txt 2.txt

array=(bill   chen  bai   hu);

        num=${#array[@]}                          //获取数组元素的个数。


 ps aux |grep -v USER | sort -nk +4 | tail  按照内存使用大小排序

 

find com -name *.class | xargs grep 'FetchRMRBTemplate'  遍历一个目录下的所有文件找关键字

 find . -name "*.xml" | xargs wc -l  统计每个文件,和所有文件的和的总行数

Shell脚本调试工具set

具体使用方法:首先使用set -x开启调试模式,最后使用命令set +x关闭调试模式

[root@localhost shell]# cat hello.sh
#!/bin/bash
# This is a test script.
# 2013/12/20#使用set命令的选项x,启动调试模式set -x

NAME=Jhon

echo $NAME

echo "Hello,$NAME"#使用+x表示关闭调试模式set +x


[root@localhost shell]# ./hello.sh+ NAME=Jhon+ echo Jhon
Jhon+ echo Hello,Jhon
Hello,Jhon+ set +x


awk '{sum=sum+$3} END {print sum}' 1.log  第三列的和

comm -3 <(sort 3.log|uniq ) <(sort 2.log|uniq ) | sed 's/^\t//'  差集

 comm -12 <(sort 3.log|uniq ) <(sort 2.log|uniq ) | sed 's/^\t//' 交集

grep -F -f 2.log 3.log 交集

grep -F -f -v 2.log 3.log 差集


你可能感兴趣的:(shell工作)