Bash學習筆記

來源:互聯網
上載者:User

========================================================================
參考: http://vbird.dic.ksu.edu.tw/linux_basic/0340bashshell-scripts.php
========================================================================


1. $*, $@, $#, $0, $1, $?


指令碼名稱叫test.sh 入參三個: 1 2 3
運行test.sh 1 2 3後
$*為"1 2 3"(一起被引號包住)
$@為"1" "2" "3"(分別被包住)
$#為3(參數數量)
$0 : 指令碼全名
$1 : 第一個參數


$?用法:如果發現上一行的命令執行有誤,該指令碼就會終止執行
if [ $? -ne 0 ];then
    fatal_log "fail execute!"
    exit 1  
fi




2. datefmt=`date +%Y%m%d` 
   echo $datefmt #20141209
   
   datefmt=`date +%Y%m%d -d '-1 day'`
   echo $datefmt #20141208

   

3. awk -F " " 'NR==FNR{a[$1]=1}NR>FNR{if(a[$1]){print $1,$2,"1";}else{print $1,$2,"0";}}' a.txt b.txt 

其中:

a.txt:

12 guomei
23 nginx
44 hello
87 world


b.txt:

23 nginx
44 hello
77 world

結果:

23 nginx 1
44 hello 1
77 world 0

4. awk -F " " '$2 ~/name=dash/{print $0}'  20141001.log

用法說明


5.統計第二列總和(一列、二列用tab分割)

abc    12

ddd    234

xyz    87

cat test.txt | awk -F "\t" 'BEGIN{sum=0}{sum+=$2}END{print sum}'


6.按第二列去重

awk '{!a[$2]++}'

參考:http://bbs.chinaunix.net/thread-1837787-1-1.html

原理:

awk 文法: awk 'pattern{action}' , action預設是print

所以上面的語句等同於: awk'!a[$2]{print $0;a[$2]++}'


7. 求兩個檔案差集

grep -F -v -f b.txt a.txt | sort | uniq  

求得是A-B

參考:http://blog.csdn.net/autofei/article/details/6579320


8. $var, ${var}, ${#var},$((算數運算式))

$var, ${var}都返回變數值,不過${var}去歧義

${#var}返回長度

$((1+2*5)) 返回11


9. du -s ./* | sort -nr 

列出目前的目錄下檔案(夾)大小,降序排列,而不是遞迴計算檔案大小


10.shell裡可以對一個檔案內容一行一行讀取嗎然後對讀取的一行內容進行分割然後放到數組

http://bbs.chinaunix.net/thread-4117251-1-1.html


11. 以第一列+第二列為Key,計算第三列和

Tom Kobe 13

Jack John 22

Tom kobe 57

cat file.txt | awk -F " " '{a[$1" "$2]+=$3}END{for(i in a){print i" "a[i]}}'



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.