shell工作
博客专区 > 昏鸦 的博客 > 博客详情
shell工作
昏鸦 发表于4年前
shell工作
  • 发表于 4年前
  • 阅读 23
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

两个文件求和,按照某咧

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 差集

cat s.txt  | sed -e '/^$/d' >> s.0.txt 去掉文件的空行

sed  -n  '2, 10!p'  input  //表示打印出非2--10行的行

sed:-i:与-e的区别在于:当使用-e时,sed执行指令并不会修改原输入文件的内容,只会显示在bash中,而使用-i选项时,sed执行的指令会直接修改原输入文件。

删除:d命令 
$ sed '2d' example-----删除example文件的第二行。

$ sed '2,$d' example-----删除example文件的第二行到末尾所有行。

$ sed '$d' example-----删除example文件的最后一行。

$ sed '/test/'d example-----删除example文件所有包含test的行。

sed 's/w/a/g' s.txt  文件中的 w 替换问a

 

 

 

 

 

 

 

 

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 6
博文 152
码字总数 57970
×
昏鸦
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: