shell語句完成對檔案操作的增刪改查
阿新 • • 發佈:2019-01-27
自己寫的小東西,也是課後實驗。
直接拷貝可能無法執行,會出現未知字元錯誤,這個小錯誤浪費了我好多時間。
#! /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