1. 程式人生 > >shell語句完成對檔案操作的增刪改查

shell語句完成對檔案操作的增刪改查

自己寫的小東西,也是課後實驗。

直接拷貝可能無法執行,會出現未知字元錯誤,這個小錯誤浪費了我好多時間。

#! /bin/sh
n=1

function insert(){
read str
sed -i '1i\'"$str" score.txt //插入輸入變數str到檔案的第一行(檔案無內容可能要自己在檔案新增記錄,否則這條命令無效)
}

function modify(){
	read str
	read str1
	read str2
	sed -i "/$str/ s/$str1/$str2/" score.txt  //第一個引數是包含str的行,用str2替換str1
}

function display(){
	sed -n '1,$p' score.txt   //顯示所有行
}

function statics(){

awk '{print $0,$1,$3 | "sort -r -k 3"}' score.txt |head -10 //對第三個欄位排序,取前10

}

function search(){ read str awk "/$str/" score.txt //查詢包含str的行 } function delete(){ read str sed -i "/^$str/d" score.txt //刪除包含str引數的行 } function total(){ awk '{ total=$3+$4 | print $0 total | head -20 }' score.txt } while [ "$n" > 0 ]; do echo "==========================================" echo "Welcome to Score Information Management" echo "input number to excute" echo "1-Insert data (Format:id name subjectname score score1 state:(final or makeup))" echo "2-Modify data" echo "3-Display data" echo "4-Statics show" echo "5-Search" echo "6-Delete" echo "7-Sort by total" echo "8-Exit" echo "==========================================" read i case "$i" in 1) insert ;; 2) modify ;; 3) display ;; 4) statics ;; 5) search ;; 6) delete ;; 7) total ;; 8) exit ;; esac done