九、Linux shell 編程

1、正則表達式

正則表達式用來在文件中匹配符合條件的字符串,正則式包含匹配
例子:
hello world 
grep "wo"   這一行中包含wo這個字串就可以找到這一行
通配符用來匹配符合條件的文件名,通配符是完全匹配。
hello world
ls wo   這一行中只能包括wo這個字串才能找到,即這行只有2個字符

在這裏插入圖片描述

grep -n "^12"  test.txt           查找以12開頭的行
grep -n "1.\{9\}2"  test.txt      查找以1開頭2結尾中間是任意字符的行
grep -n "12$"  test.txt  	      查找以12結尾的行
使用時對照上面的表即可

2、字符截取

cut [選項] 文件名   
-f 列號: 提取第幾列
-d 分隔符: 用指定分隔符分隔列

cut -f 1 student.txt   提取第一列
cut -d ":" -f 1,3  /etc/passwd   根據冒號提取1,3列
cut命令提取的文件必須用製表符分隔,不然會截取失敗

printf '輸出類型輸出格式' 輸出內容
%ns    輸出字符串,n是數字指代輸出幾個字符
%ni		輸出整數,n指代輸出幾個數字
%m.nf		輸出浮點數。m和n是數字。指代輸出的位數和其中小數的輸出位數   8.2f 表示一共輸出8位,小數輸出2位

printf %s 1 2 3 4 5 6 輸出123456
printf %s %s %s 1 2 3 4 5 6 輸出 %s %s 1 2 3 4 5 6
printf ‘%s %s %s\n’ 1 2 3 4 5 6
輸出: 1 2 3
			4 5 6

awk '條件1{動作1} 條件2{動作2}...' 文件名
awk '{printf &1 &2}'  student.txt 輸出第一列和第二列
df -h | awk 'print $1 $5'   提取df -h 輸出內容的第一列和第五列

sed 是一種輕量級流編輯器。sed主要是用來將數據進行選區、替換、刪除、新增的命令。
sed [選項] '[動作]' 文件名
選項:
-n 只把經過sed命令處理過的行輸出到屏幕
-e 允許對輸入數據應用多條sed命令編輯器
-i 用sed的修改結果直接修改讀取數據的文件,而不是由屏幕輸出

動作:
a\:  追加,在當前行末尾添加,添加多行時,除最後一行,每一行末尾要加“\”
c\:  行替換 用c後面的字符串替換源數據行,替換多行時,除最後一行,每一行末尾要加“\”
i\:   插入 在當前行前插入一行或多行數據,多行時,除最後一行,每一行末尾要加“\”
d\:  刪除,刪除指定行
p\:  打印 輸出指定行
s\:  字串替換 

sed '2p' student.txt
sed -n '2p' student.txt
sed '1,2d' student.txt
sed '1i hello' student.txt

sed 's/舊字串/新字串/g' 文件名
sed '2s/n/y/g' student.txt 把第二行中的n換成y
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章