iT邦幫忙

0

shell script 裡如何使用正規表示法比對字串 ?

  • 分享至 

  • xImage

perl 裡面可以用 $VAR =~ /樣式/ 來比對變數裡有無符合該樣式,在shell script 裡面要如何比對字串是否符合樣式呢 ?

謝謝大家~

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
8
silly
iT邦好手 2 級 ‧ 2009-05-19 21:27:23
最佳解答

shell script就是使用現存的各種指令組合以完成某項特定工作。
您的問題其實pippeng已經有提到重點了,只是可能您還沒有想到"$?"(離開狀態值)它的功用,$?等於0表示成功,非零表示不成功;
你要用正規表示式來比對,有很多unix程式都有使用(如grep、sed、awk等等)

<pre class="c" name="code">
#!/usr/bash
grep -q somePattern $1
if [ $? == 0 ]; then
    echo "Find it !!"
else
    echo "NOT Find!!!"
fi

可以用來比對檔案內有無somePattern。

以上
希望能幫到你。

lalelee iT邦新手 4 級 ‧ 2009-05-20 17:41:18 檢舉

Right! 我後來想到的方式也是這樣 ! 感謝您 !

16
pcboy
iT邦大師 6 級 ‧ 2009-05-18 17:54:32
lalelee iT邦新手 4 級 ‧ 2009-05-19 10:02:47 檢舉

謝謝您的回答~
但這好像是變數的樣式比對,比對成功則傳回變數值,
我沒說清楚,我希望的是比對成功則傳回True

ex :

if [ $VAR =~ /樣式/ ]
then
DO SOMETHING
fi

10
pippeng
iT邦新手 4 級 ‧ 2009-05-19 11:14:17

你說清楚要什麼吧
你使用if了還有傳回true做什麼?
do裡面你要做什麼都可以阿
你要傳回ture但又使用if感覺很矛盾

linux的指令都會回傳一個值$?
1=ture 0=fail

lalelee iT邦新手 4 級 ‧ 2009-05-19 15:54:05 檢舉

先謝謝您的回答~

用if 就是為了比對成功才去DO SOMETHING

if [ $VAR =~ /樣式/ ]
then
DO SOMETHING
fi

我是想問bash script 裡面可以像perl 一樣有有字串比對的方式嗎?
perl 裡可以$用"=~" 指定比對的樣式,但我在script 裡似乎只能用
"==" 來比對兩個字串是否相同

我要發表回答

立即登入回答