shell腳本排序
『壹』 Shell基礎腳本-運算符優先順序
在腳本中,運算執行的順序被稱為優先順序: 高優先順序的操作會比低優先順序的操作先執行
表-1. 運算符優先順序(從高到低)
實際上,你只需要記住以下規則就可以了:
現在,讓我們利用運算符優先順序的知識來分析一下Fedora Core Linux中的/etc/init.d/functions文件。
為了避免在復雜比較運算中的錯誤,可以把運算分散到幾個括弧結構中
『貳』 Shell 腳本cp後給文件加上當天日期,然後根據當天日期判斷,再加上順序數字01 02 03
1、假設你有一堆文件要改名列表
2、例如
#!/bin/sh
cd ./sh
ymd=`date +%Y%m%d`
max=`find . -type f -name '*.sh'|wc|awk '{print $1}'`
x=(`seq -f %02g 1 ${max}`)
i=0
for file in `ls *.sh`;do
file1=$(echo $file|awk -F. '{print $1}')
newfile=$file1-$ymd-${x[$i]}.sh
echo $file $newfile;
/bin/mv $file $newfile;
((i++))
done
3、執行
199.sh 199-20180206-01.sh
204.sh 204-20180206-02.sh
27.sh 27-20180206-03.sh
28.sh 28-20180206-04.sh
76.sh 76-20180206-05.sh
『叄』 如何用Shell腳本生成10個隨機數並排序
i=1
while[$i-le10]
do
if[$i-eq1]
then
a[$i]=$RANDOM
else
j=$i
a[$j]=$RANDOM
while[$j-ge2]&&[${a[$j]}-le${a[$((j-1))]}]
do
t=${a[$j]}
a[$j]=${a[$((j-1))]}
a[$((j-1))]=$t
j=$((j-1))
done
fi
i=$((i+1))
done
echo${a[@]}
『肆』 編寫shell腳本實現提取文件中的第1000-2000行數據
for((i=1000;i<=2000;i++))
do
x=${i}"p"
cat f1|sed -n "$x" >>f2
done
cat f2
這里默認認為一條數據一行,從文件f1的第1000行開始逐行讀取然後寫到新的文件f2中