0

おそらく私は bash を少し遠ざけていますが、この変数には URL のリストが含まれています。

#!/bin/bash    
/* returns
/path/page/one.php
/path/subseciton/
/path/to/this/section/
/path/to/yet/aother_section/about.php
etc
*/
list_of_urls = $(pull_urls.sh) 

次に、for ループを実行して、古いサーバーと新しいサーバーからテキスト コンテンツを取得します。それらのそれぞれで、さまざまな diff コマンドを実行して、何が変更されたかを確認しています。

for i in $urls
    do

        echo $i
        storage_area=./working/$i/
        mkdir -p $storage_area


        xidel http://oldserver/$i  -e '//div[@id="maincontent"]//p' > $storage_area/old.txt
        xidel http://newserver/$i -e '//div[@id="content"]//p' > $storage_area/new.txt
        diff $storage_area/old.txt $storage_area/new.txt > $storage_area/diff.diff
        wdiff $storage_area/old.txt $storage_area/new.txt > $storage_area/wdiff.wdiff
    done

私の問題は、末尾のスラッシュを削除する必要があることです。次の方法で行うことをお勧めしますか?

// inside the loop, before xidel calls
i=$(echo $i | sed -e 's/\/$//g')
4

1 に答える 1

2

このようにどうですか:

kent$ i=foo/                                                                                                                                             
kent$ i=${i%/}                                                                                                                                           
kent$ echo $i
foo

を使用したい場合は、パターンでスラッシュを使用したいので、sed以外の別のセパレーターを使用することを検討できます。/

kent$ i=/path/to/this/section/
kent$ i=$(sed 's#/$##'<<<"$i")
kent$ echo $i
/path/to/this/section
于 2013-05-10T16:22:15.700 に答える