準備(創建測試文件):
1. 按行讀取文件內容,且過濾包含“#”字符的行
代碼:
#!/bin/bash
FILE_NAME="test"
cat $FILE_NAME | while read LINE
do
#過濾配置文件中包含"#"的行
if [[ ${LINE} =~ "#" ]];then continue;fi
echo ${LINE}
done
結果:
hrx@@@:~/test/shell$ ./test.sh
一行一列 一行二列 一行三列
二行一列 二行二列 二行三列
三行一列 三行二列 三行三列
解釋:
1、使用cat命令獲取文件test的內容,然後一行一行的把數據讀取到LINE變量,直到讀完爲止。
2、使用=~符號判斷LINE中是否包含“#”,包含則跳過
2. 獲取文件的MD5並按空格拆分出MD5值
代碼:
#!/bin/bash
FILE_NAME="test"
echo $(md5sum ${FILE_NAME})
echo $(md5sum ${FILE_NAME} |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 "二行二列" ${FILE_1})
#將字符串寫入文件test2中
echo ${str} >> ${FILE_2}
結果:
hrx@@@:~/test/shell$ ./test.sh
二行一列 二行二列 二行三列
hrx@@@:~/test/shell$ cat test2
二行一列 二行二列 二行三列
解釋:
1、使用grep查詢文件中包含“二行二列”字符的一行(-w:爲完全匹配)
2、將字符串寫入文件test2中(>:爲寫入文件,會清空之前內容)(>>:爲追加內容到文件)