Shell腳本實踐整理

準備(創建測試文件):

在這裏插入圖片描述

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中(>:爲寫入文件,會清空之前內容)(>>:爲追加內容到文件)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章