1

どうやって:

  • テキストファイルから読み取る
  • 各行をカンマで区切る
  • それをbashの変数に割り当てますか?

 

ファイルリスト

renamedfile.xml,url-01.php
renamedFileDifferent.xml,url-02.php
specificFileRename.xml,"url-03"
newFilename.xml,"url-04"
 

私はこのようなことを達成しようとしています:

    #!/usr/bin/env bash 
    while read line 
      do   
          wget -c -O newfile remoteFile >/dev/null 2>&1  
    done < filelist 

 

また、cron ジョブ用のシェル ファイルを配置する一般的な場所はどこですか?

4

1 に答える 1

1

特別な IFS 変数 (内部フィールド区切り記号) を設定することで、bash をデフォルトのタブ、改行、およびスペースの代わりにカンマで分割することができます。

while IFS=',' read -r newfile remotefile; do
    wget -q -c -O "$newfile" "http://somesite/$remotefile"
done < filelist

サンプル ファイルの引用符には、これに関する問題があります。パラメータ展開を使用して、引用符を取り除くことができます。

while IFS=',' read -r newfile remotefile; do
    wget -q -c -O "$newfile" "http://somesite/${remotefile//\"/}"
done < filelist

引用符が実際にファイル名の一部になることを意図している場合は、URL エンコードする必要があります。これにもパラメータ展開を使用できます。

while IFS=',' read -r newfile remotefile; do
    wget -q -c -O "$newfile" "http://somesite/${remotefile//\"/%22}"
done < filelist
于 2012-09-25T00:58:24.810 に答える