準備(建立測試檔案):
1. 按行讀取檔案內容,且過濾包含「#」字元的行
**:
#!/bin/bash
file_name=
"test"
cat$file_name
|while
read line
do#過濾配置檔案中包含"#"的行if[
[$=~ "#"]]
;then
continue;fi
echo
$done
結果:
hrx@@@:~/test/shell$ ./test.sh
一行一列 一行二列 一行三列
二行一列 二行二列 二行三列
三行一列 三行二列 三行三列
解釋:1、使用cat命令獲取檔案test的內容,然後一行一行的把資料讀取到line變數,直到讀完為止。
2、使用=~符號判斷line中是否包含「#」,包含則跳過
2. 獲取檔案的md5並按空格拆分出md5值
**:
#!/bin/bash
file_name=
"test"
echo
$(md5sum $
)echo
$(md5sum $
|cut -d" " -f1)
結果:
hrx@@@:~/test/shell$ ./test.sh
e662a3938d12efcf8d168fea7ff96cc8 test
e662a3938d12efcf8d168fea7ff96cc8
解釋:1、使用md5sum命令查詢檔案所返回的格式為【md5值 檔名】,中間以空格符分隔。
2、使用cut命令拆分出第一段字元(-d:自定義分隔符,這裡定義空格,也可定義雙引號之類的,不過要轉義)(-f:定義要哪一段,f後面的數字表示段號,從1開始)
3. 查詢檔案中包含某字段的一行,並寫入新的檔案
**:
#!/bin/bash
file_1=
"test"
file_2=
"test2"
#獲取包含某字串的一行
str=
$(grep -w "二行二列" $
)#將字串寫入檔案test2中
echo
$>>
$
結果:
hrx@@@:~/test/shell$ ./test.sh
二行一列 二行二列 二行三列
hrx@@@:~/test/shell$ cat test2
二行一列 二行二列 二行三列
解釋:1、使用grep查詢檔案中包含「二行二列」字元的一行(-w:為完全匹配)
2、將字串寫入檔案test2中(>:為寫入檔案,會清空之前內容)(>>:為追加內容到檔案)
Shell 指令碼實踐
shell 用 c 語言編寫的程式,既是一種命令列語言,又是一種程式語言,用 shell 編寫的稱為指令碼程式 shell script 1 作為可執行程式 chmod x test.sh test.sh 2 作為直譯器引數 sh test.sh我們可以在執行指令碼時,傳遞引數,指令碼內獲取引數的格...
Shell 指令碼實踐
1.指令碼判斷命令輸出是否為空 1 判斷字串為空 if str if x str x if z str n 為非空 注意 都要代雙引號,否則有些命令會報錯,養成好習慣吧!2.輸入y n 可以使用判斷符號進行資料的判斷,如檢查某變數是否為空 z shell 需要注意的是中括號 內的元件必須以空格隔開。...
shell指令碼實踐3 2018 03 29
1.echo 變數 1.txt 可以實現向檔案中輸入資訊 command 1.txt 可以實現向檔案中輸入資訊,是將命令執行的結果輸入檔案 2.wc l 1.txt 此命令統計檔案行數時,顯示結果為兩列,一列是行數,一列是檔名,如果只利用行數,需要用cut將其獲取出來 3.將從windows複製過來...