awk 列求和


awk 'BEGIN{sum=0}{sum+=$1}END{print sum}' data.txt

有a、b、c三行三列,计算出第二列和第三列的总和,并在第四行输出

[root@test ~]# cat data.txt
a    1      10
b   26     379
c    2    1605

[root@test ~]# awk '{printf "%10s%5s%8s\n",$1,$2,$3;x+=$2;y+=$3}END{printf "%10s%5s%8s\n","Total:",x,y}' data.txt
     a    1      10
     b   26     379
     c    2    1605
Total:   29    1994
阅读全文

sed 在某行后添加


cat txt
aaa 111 bbb
ccc 222 ddd
eee 333 ggg
jjj 444 kkk
hhh 555 lll
mmm 666 nnn
jjj 444 kkk
kk 777 ggg

使用 a 追加

sed -i -e '/jjj 444 kkk/a\test test test' txt
cat txt
aaa 111 bbb
ccc 222 ddd
eee 333 ggg
jjj 444 kkk
test test test
hhh 555 lll
mmm 666 nnn
jjj 444 kkk
test test test
kk 777 ggg
阅读全文

Shell中 uniq 与 sort -u 的去重区别


uniq 和 sort -u 都能起到删除重复信息的功能。

$ cat test              
jason
jason
jason
fffff
jason

1.uniq test
$uniq test 
jason
fffff
jason 

2.sort -u test
sort -u test
fffff
jason

3.sort test|uniq
$sort test |uniq 
fffff
jason

从上面三个命令我们很容易看出他们之间的区别。
uniq 所谓的重复是连续出现的相同记录。

阅读全文