自动替换和附加文本文件中的单词

时间:2017-04-02 07:05:52

标签: bash curl

我在bash文件中有一行像---

curl -L $domain/url1 options

域已从另一个文本文件中读取 像

这样的域名
abc.com
google.com
yahoo.com

我有另一个单独的文件,其中包含更多的URL(批号):

url1
url2
url3
....
url1000

我想替换该网址并将其添加为:

curl -L abc.com/url1 options
curl -L abc.com/url2 options
curl -L abc.com/url3 options
....
curl -L $abc.com/url1000 options

手动花费太多时间,所以我想自动化这个过程。

1 个答案:

答案 0 :(得分:2)

bash Process-substitution

中使用正确的循环
while IFS= read -r url; do
    curl -L abc.com/"$url" options
done <url_file

就足够(或)在同一循环的单行中,

while IFS= read -r url; do curl -L abc.com/"$url" options; done <url_file

对于循环使用两个文件的更新要求,您需要定义多个文件描述符并从中读取,

while IFS= read -r domain <&3; do
    while IFS= read -r url <&4; do
        curl -L "$domain"/"$url" options
    done 4<url.txt
done 3<domain.txt

以上内容适用于任何不涉及任何POSIX - isms的bash shell,您可以将上述内容放在带有#!/bin/sh she-bang的脚本中。