如何在Bash中拆分一行并分配变量
你如何:如何在Bash中拆分一行并分配变量,bash,wget,Bash,Wget,你如何: 从文本文件中读取 用逗号分隔每一行 并将其分配给bash中的变量 文件列表 重命名文件.xml,url-01.php 重命名文件different.xml,url-02.php specificFileRename.xml,“url-03” newFilename.xml,“url-04” 我希望能完成以下任务: #!/usr/bin/env bash while read line do wget -c -O newf
- 从文本文件中读取
- 用逗号分隔每一行
- 并将其分配给bash中的变量李>
重命名文件different.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
#/usr/bin/env bash
读行时
做
wget-c-O新文件远程文件>/dev/null 2>&1
完成<文件列表
另外,cron作业的shell文件通常放置在什么位置?通过设置特殊的IFS变量(内部字段分隔符),可以使bash使用逗号而不是默认的制表符、换行符和空格进行拆分
while IFS=',' read -r newfile remotefile; do
wget -q -c -O "$newfile" "http://somesite/$remotefile"
done < filelist
当IFS=',read-r newfile remotefile;做
wget-q-c-O“$newfile”http://somesite/$remotefile“
完成<文件列表
示例文件中的引号将对此有问题。可以使用参数展开来删除引号
while IFS=',' read -r newfile remotefile; do
wget -q -c -O "$newfile" "http://somesite/${remotefile//\"/}"
done < filelist
当IFS=',read-r newfile remotefile;做
wget-q-c-O“$newfile”http://somesite/${remotefile/\“/}”
完成<文件列表
如果引号实际上是文件名的一部分,则需要对其进行url编码。您也可以使用参数扩展
while IFS=',' read -r newfile remotefile; do
wget -q -c -O "$newfile" "http://somesite/${remotefile//\"/%22}"
done < filelist
当IFS=','read-r newfile remotefile;do
wget-q-c-O“$newfile”http://somesite/${remotefile/\“/%22}”
完成<文件列表
通过设置特殊的IFS变量(内部字段分隔符),可以使bash以逗号而不是默认的制表符、换行符和空格分隔
while IFS=',' read -r newfile remotefile; do
wget -q -c -O "$newfile" "http://somesite/$remotefile"
done < filelist
当IFS=',read-r newfile remotefile;做
wget-q-c-O“$newfile”http://somesite/$remotefile“
完成<文件列表
示例文件中的引号将对此有问题。可以使用参数展开来删除引号
while IFS=',' read -r newfile remotefile; do
wget -q -c -O "$newfile" "http://somesite/${remotefile//\"/}"
done < filelist
当IFS=',read-r newfile remotefile;做
wget-q-c-O“$newfile”http://somesite/${remotefile/\“/}”
完成<文件列表
如果引号实际上是文件名的一部分,则需要对其进行url编码。您也可以使用参数扩展
while IFS=',' read -r newfile remotefile; do
wget -q -c -O "$newfile" "http://somesite/${remotefile//\"/%22}"
done < filelist
当IFS=','read-r newfile remotefile;do
wget-q-c-O“$newfile”http://somesite/${remotefile/\“/%22}”
完成<文件列表
看起来您是在用逗号和空格进行拆分,而不仅仅是用逗号。至于您的附带问题,这只是一个首选项。我使用$HOME/bin。看起来你是在用逗号和空格分割,而不仅仅是逗号。至于你的旁题,这只是一个偏好。我使用$HOME/bin。