日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

bash和sed简要介绍和相关范例

發布時間:2025/3/20 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bash和sed简要介绍和相关范例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?一、bash 中如何進行條件測試:

?? 有三種類型的測試:整數測試、字符串測試、文件測試

?? 1.整數測試:

???????????? -eq?? 左邊的值是否等于右邊

???????????? -gt?? 左邊的值是否大于右邊?

???????????? -ge?? 左邊的值是否大于等于右邊

???????????? -lt?? 左邊的值是否小于右邊

??????????? ?-le?? 左邊的值是否小于等于右邊

???????????? -ne?? 左邊的值是否不等于右邊

??? 2.字符串測試:

?????????????? == 也可以寫成=????? 左右兩個字符串是否相同

?????????????? =???????????????? 左右兩個字符串是否不同

?????????????? -z?????????????????? 查看字符串是否為空

?????????????? -n?????????????????? 查看字符串是否不為空

??? 3.文件測試:

??????????????? -e? ???FILE?????? ?判斷是否為單目操作

??????????????? -f??? ?FILE?????? ?判斷是否為普通文件

???? ???????????-d??? ?FILE????? ??判斷是否為目錄

??????????????? -h/-l? ?FILE????? ??判斷是否為符號鏈接文件

??????????????? -b??? ?FILE????? ??判斷是否為塊設備文件

??????????????? -c??? ?FILE?????? ?判斷是否為字符設備文件

??????????????? -r????? FILE?????? 判斷當前所用的文件是否有讀權限

??????????????? -w???? FILE??????? 判斷文件是否有寫權限

??????????????? -x???? FILE??????? 判斷文件是否有執行權限

二、sed編輯器介紹

? 1.sed:(stream editor ,是一個很好用的行編輯器,支持正則表達式的處理,具有如下特點:

?1sed是一個非交互式的編輯器

?2)沒有破壞性,不修改源文件,除非使用shell的重定向符來保存結果

?3sed還支持sed腳本

?使用格式:

?(1)1,4?:表示查找范圍是1-4行,使用格式:sed‘addr1,addr2s@from@tog/i’

?其中addr1是開始行,addr2是結束行,;s 是替換,@為分隔符,也可以是其他

?字符,但是不能與查找的字符一樣,from是查找什么,to 是替換成什么,g是全

?局查找,i 忽略大小寫查找

2/pattern/command? ??sed 也支持模式匹配,

3/pattern1/ ,/pattern2/

? ? i\? 在當前行的上方添加一行或者多行

??? ?a\ ?在當前行的下方添加一行或者多行

? ? ??對模式匹配到的內容取反

?????d ?刪除匹配到的內容 ,如:sed '5d' filename ?,將文件中的第5行刪除;sed '5,7d' filename ?將文件中的第5-7行刪除

? ? ?

2.sed 的一些常用選項

??????-n ?靜默模式,只顯示被模式匹配到的內容

??????-e ?一次指定多個條件 ,例如:sed ?-e ‘’ ?‘’ ?‘’ ?文件名

? ? ? -i ??可以直接修改原文件

? ? ? -f?? 讀取sed 腳本

3.sed用法的簡單例子:

echo "var/log/httpd/access_log/" | sed 's@.*/\([^/]\{1,\}\)/\{0,1\}@\1@g'

顯示結果:access_log

echo "/etc/log/httpd/access_log" | sed '1,$s@\(.*\)/[^/]\{1,\}@\1@g'

顯示結果:/etc/log/httpd

三、Shell 腳本編程范例:

1.寫一個腳本:

(1)創建目錄/tmp/scripts

(2)切換工作目錄至此目錄中

(3)復制/etc/pam.d目錄至當前目錄,并重命名為test

(4)將當前目錄中的test及其里面的文件和子目錄的屬主改為redhat

(5)test及其子目錄中的文件的其他用戶的權限改為沒有任何權限

#!/bin/bash

WDIR='/tmp/scripts'

mkdir $WDIR &> /dev/null

cd $WDIR

cp -r /etc/pam.d test &> /dev/null

chown -R redhat test &> /dev/null

chmod -R o= test &> /dev/null

2.寫一個腳本:

(1).切換工作目錄至/var?????????????

(2).依次向/var目錄中的每個文件或者子目錄問好

1種方法

#!/bin/bash

echo "lian xi "

cd /var

echo "qie huan mulu chenggong "

for file in `ls /var`; do

??? echo "hello,$file" | cut -d/ -f1,3

done

2種方法

#!/bin/bash

echo "lian xi "

cd /var

echo "qie huan mulu chenggong "

for file in /var/*; do

??? echo "hello,`basename $file`"

done

3.100以內的整數的和:

#!/bin/bash

?? declare -i SUM=0

?? for I in {1..100}; do

?? SUM=$[$SUM+$I]

done

? echo "the sum is:$SUM"

4.100以內偶數的和;

#!/bin/bash

?? declare -i SUM=0

?? for I in `seq 0 2 100`; do

?? SUM=$[$SUM+$I]

done

? echo "the sum is:$SUM"

5.寫一個腳本:

(1)設定變量FILE的值為/etc/passwd

(2)使用循環讀取文件/etc/passwd 的第2,4,6,10,13,15行,并顯示其內容:

(3)把這些行保存至/tmp/mypasswd文件中

#!/bin/bash

FILE='/etc/passwd'

for LINE in 2 4 6 10 13 15; do

? head -$LINE $FILE | tail -1 | tee -a /tmp/mypasswd

done

6.寫一個腳本:

(1)設定變量FILE的值為/etc/passwd

(2)依次向/etc/passwd中的每個用戶問好,形如:Helloroot,顯示自己的shell

形如:your shell bash

(3)統計一共有多少個用戶

第一種方法:

#!/bin/bash

FILE='/etc/passwd'

LINES=`wc -l $FILE | cut -d' ' -f1`

?for LINE in `seq 1 $LINES`; do

? echo "Hello ,`head -$LINE $FILE | tail -1 | cut -d: -f1`, your shell:`head -$LINE $FILE | tail -1 | cut -d: -f7`"

done

也可以這樣:

for LINE in `seq 1 $LINES`; do

??? ?MYUSER=`head -$LINE $FILE | tail -1 | cut -d: -f1`

???? MYSHELL=`head -$LINE $FILE |tail -1 | cut -d: -f7`

?? echo "Hello ,$MYUSER,your shell: $MYSHELL"

7.創建10個用戶并為其添加密碼,以用戶一樣的密碼

for NEWUSER in {1..10};do

??? useradd user$Newuser &> /dev/null

??? echo "user$Newuser" | passwd --stdin user$NEwuser &> /dev/null

done

轉載于:https://blog.51cto.com/linuxg/785391

總結

以上是生活随笔為你收集整理的bash和sed简要介绍和相关范例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。