1

你怎么:

  • 从文本文件中读取
  • 用逗号分隔每一行
  • 并将其分配给bash中的变量?

 

文件列表

重命名file.xml,url-01.php 重命名
FileDifferent.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 作业放置 shell 文件的典型位置是什么?

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 回答