シェルスクリプトの基礎#
シェルスクリプトデバッグ#
-n、スクリプト内のコマンドを一度読み取るが実行しない、スクリプト内の構文エラーをチェックするために使用
-v、スクリプトを実行しながら、実行されたスクリプトコマンドを標準エラー出力に印刷
-x、実行情報をトレースし、実行された各コマンドと結果を順次印刷
シェルスクリプトでテキスト中の無秩序な列の数字をソート#
[root@server ~]# sort -n 190307.txt | awk '{a+=$0;print$0} END {print "sum="a}'
シェルコマンドでファイルの空行行番号を表示#
[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
シェルフォルダ操作#
- フォルダ内のすべてのファイルを削除するが、フォルダ自体は削除しない
[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