shell 腳本基礎#
shell 腳本調試#
-n,讀一遍腳本中的命令但不執行,用於檢查腳本中的語法錯誤
-v,一邊執行腳本,一邊將執行過的腳本命令打印到標準錯誤輸出
-x,提供跟蹤執行信息,將執行的每一條命令和結果依次打印出來
shell 腳本對文本中無序的一列數字排序#
[root@server ~]# sort -n 190307.txt | awk '{a+=$0;print$0} END {print "sum="a}'
shell 命令查看文件空行行號#
[root@server ~]# grep -n ^$ filename
[root@server ~]# sed -n '/[a-zA-Z0-9@#$%^&*]!=' filename
[root@server ~]# sed -n '/^$/=' filename
[root@server ~]# awk '/^$/{print NR}' filename
shell 文件夾操作#
- 刪除一個文件夾下所有文件但是不刪除文件夾
[root@server-ai ~]# find . -type f | xargs rm -f
- 只複製目錄的結構,而不複製目錄的內容
[root@server-ai ~]# find ~ -type d -exec mkdir -p demo/\{\} \;
- 查找當前文件夾下所有的文本文件內容中包含有字符”math” 的文件名稱
[root@server-ai ~]# grep -r "math" /home/chenjiawei/test/shell/ | cut -d ":" -f 1
-
遍歷目錄及其子目錄中的所有文件
#! /bin/bash function read_dir(){ for file in `ls $1` #注意此處這是兩個反引號,表示運行系統命令 do if [ -d $1"/"$file ] #注意此處之間一定要加上空格,否則會報錯 then read_dir $1"/"$file else echo $1"/"$file #在此處處理文件即可 fi done } #讀取第一個參數 read_dir $1
執行命令
$ sh traveDir.sh DIR_NAME