[Up]常用資訊

[重點文章] 重點文章 [重點文章] 重點文章

2020年6月3日 星期三

[SHELL] grep 指令使用 or 及 and 查兩個條件以上

[SHELL] grep 指令使用 or 及 and 查兩個條件以上

 
#Step: 01 – grep 指令使用 or 及 and 查兩個條件以上
最近找字串 使用時候記憶一下



[SHELL] grep 指令使用 or 及 and 查兩個條件以上

OR

以下幾種方法,也可以實現 or 搜索,會對兩種字串進行搜索,只要符合其中一個條件,即會印出那行的內容:

$ grep '字串_1\|字串_2' file.txt
$ grep -E '字串_1|字串_2' file.txt
$ egrep '字串_1|字串_2' file.txt
$ grep -e 字串_1 -e 字串_2 file.txt

AND

除了 or 的用法,也可以有 and 的用法,即需要同時符合兩個條件: (分隔使用 .* [點] )

$ grep -E '字串_1.*字串_2' file.txt
$ grep -E '字串_1.*字串_2|字串_2.*字串_1' file.txt


grep -E '160.*Vlan'



hosts=(
box001:box001.domain.com
box002:box002.domain.com
box003:box003.domain.com
box004:box004.domain.com
box005:box005.domain.com
)

uri="http://server/api/duplicateobject.htm?id=2928&name=NEWSERVER&host=NEWHOSTNAME&targetid=3120"

for host in "${hosts[@]}"; do
    IFS=":" names=( $host )
    hosturi="${uri/NEWSERVER/${names[0]}}"
    hosturi="${hosturi/NEWHOSTNAME/${names[1]}}"
    echo "$hosturi"
done


Outputs:

http://server/api/duplicateobject.htm?id=2928&name=box001&host=box001.domain.com&targetid=3120
http://server/api/duplicateobject.htm?id=2928&name=box002&host=box002.domain.com&targetid=3120
http://server/api/duplicateobject.htm?id=2928&name=box003&host=box003.domain.com&targetid=3120
http://server/api/duplicateobject.htm?id=2928&name=box004&host=box004.domain.com&targetid=3120
http://server/api/duplicateobject.htm?id=2928&name=box005&host=box005.domain.com&targetid=3120

沒有留言:

張貼留言