Curl 将文本前缀和url列表提取到连续编号的输出行

Curl 将文本前缀和url列表提取到连续编号的输出行,curl,awk,sed,grep,Curl,Awk,Sed,Grep,我试图从一个包含URL列表的文本文件(raw.txt)中提取“product_sku”。然后,我需要将提取的文本作为后缀添加到输出文件(clean.txt)中每个编号为(0-36)的url的末尾 每组url都有不同的“产品sku”,因此每组行都需要对应于url组的“产品sku” 我可以使用以下方法提取URL: cat raw.txt | grep -E -o "WEBSITE/product_images/870-.*" > clean.txt 我正在努力将“产品sku”添加到列表中 代

我试图从一个包含URL列表的文本文件(raw.txt)中提取“product_sku”。然后,我需要将提取的文本作为后缀添加到输出文件(clean.txt)中每个编号为(0-36)的url的末尾

每组url都有不同的“产品sku”,因此每组行都需要对应于url组的“产品sku”

我可以使用以下方法提取URL:

cat raw.txt | grep -E -o "WEBSITE/product_images/870-.*" > clean.txt
我正在努力将“产品sku”添加到列表中

代码如下所示

。。。 ... 表示为清晰起见已删除的其他URL

var StockNumber = 'U52684'
var product_id = '972930'
var product_sku = 'NN26ZZA'
        var threesixty_start_frame = 4
    var threesixty_images = WEBSITE/product_images/870-972930/XafJtPxTqNQuPNQpjF5h.JPG
WEBSITE/product_images/870-972930/9YZH6VMT2zH6AntfaAIG.JPG
WEBSITE/product_images/870-972930/SrE9oVwVmJjS58SwZB9q.JPG
WEBSITE/product_images/870-972930/1enLX6dc9bbG7k9SEAfL.JPG
。。。

。。。

。。。

理想输出如下所示:

WEBSITE/product_images/870-972930/XafJtPxTqNQuPNQpjF5h.JPG NN26ZZA_01.JPG
WEBSITE/product_images/870-972930/9YZH6VMT2zH6AntfaAIG.JPG NN26ZZA_02.JPG
WEBSITE/product_images/870-972930/SrE9oVwVmJjS58SwZB9q.JPG NN26ZZA_03.JPG
WEBSITE/product_images/870-972930/1enLX6dc9bbG7k9SEAfL.JPG NN26ZZA_04.JPG
...
...
WEBSITE/product_images/870-768442/fg7G7CX2Z0oK8mCVlJN3.JPG LT65YMP_01.JPG
WEBSITE/product_images/870-768442/PGGJ5RaWoYx7VStbsBjL.JPG LT65YMP_02.JPG
WEBSITE/product_images/870-768442/SEEbiNEWA5MXsIUwuaZH.JPG LT65YMP_03.JPG
WEBSITE/product_images/870-768442/TrEPAFaEhxhMxQNDD8qh.JPG LT65YMP_04.JPG
...
...

等等。

您可以使用
awk
捕获前一行中看到的产品sku,并根据要求重新使用。例如,这里的产品sku用于在具有
网站的所有行上显示
。请注意,每次看到产品sku时,
c
的计数器也会重置。以便重新开始每个产品的sku编号

awk  '/product_sku/{p_sku=$NF; c=1;next} /WEBSITE/{url=gensub(/.*(WEBSITE.*)/,"\\1","g");print url,p_sku "_"c".jpeg";c++}' input
WEBSITE/product_images/870-972930/XafJtPxTqNQuPNQpjF5h.JPG NN26ZZA_1.jpeg
WEBSITE/product_images/870-972930/9YZH6VMT2zH6AntfaAIG.JPG NN26ZZA_2.jpeg
WEBSITE/product_images/870-972930/SrE9oVwVmJjS58SwZB9q.JPG NN26ZZA_3.jpeg
WEBSITE/product_images/870-972930/1enLX6dc9bbG7k9SEAfL.JPG NN26ZZA_4.jpeg
WEBSITE/product_images/870-768442/fg7G7CX2Z0oK8mCVlJN3.JPG LT65YMP_1.jpeg
WEBSITE/product_images/870-768442/PGGJ5RaWoYx7VStbsBjL.JPG LT65YMP_2.jpeg
WEBSITE/product_images/870-768442/SEEbiNEWA5MXsIUwuaZH.JPG LT65YMP_3.jpeg
WEBSITE/product_images/870-768442/TrEPAFaEhxhMxQNDD8qh.JPG LT65YMP_4.jpeg
WEBSITE/product_images/870-957033/K5iXEYmG2a4QncRBOrvL.JPG LS16ZBC_1.jpeg
WEBSITE/product_images/870-957033/fbaj3T5dKtmH0HTX11q5.JPG LS16ZBC_2.jpeg
WEBSITE/product_images/870-957033/WvBUOrjCMWQGe4gwNhrF.JPG LS16ZBC_3.jpeg
WEBSITE/product_images/870-957033/ixtB4SbtrFZTIVotvxSd.JPG LS16ZBC_4.jpeg

注意:此解决方案需要,
gawk
才能运行

您可以使用
awk
捕获前一行中看到的产品sku,并根据需要重新使用。例如,这里的产品sku用于在具有
网站的所有行上显示
。请注意,每次看到产品sku时,
c
的计数器也会重置。以便重新开始每个产品的sku编号

awk  '/product_sku/{p_sku=$NF; c=1;next} /WEBSITE/{url=gensub(/.*(WEBSITE.*)/,"\\1","g");print url,p_sku "_"c".jpeg";c++}' input
WEBSITE/product_images/870-972930/XafJtPxTqNQuPNQpjF5h.JPG NN26ZZA_1.jpeg
WEBSITE/product_images/870-972930/9YZH6VMT2zH6AntfaAIG.JPG NN26ZZA_2.jpeg
WEBSITE/product_images/870-972930/SrE9oVwVmJjS58SwZB9q.JPG NN26ZZA_3.jpeg
WEBSITE/product_images/870-972930/1enLX6dc9bbG7k9SEAfL.JPG NN26ZZA_4.jpeg
WEBSITE/product_images/870-768442/fg7G7CX2Z0oK8mCVlJN3.JPG LT65YMP_1.jpeg
WEBSITE/product_images/870-768442/PGGJ5RaWoYx7VStbsBjL.JPG LT65YMP_2.jpeg
WEBSITE/product_images/870-768442/SEEbiNEWA5MXsIUwuaZH.JPG LT65YMP_3.jpeg
WEBSITE/product_images/870-768442/TrEPAFaEhxhMxQNDD8qh.JPG LT65YMP_4.jpeg
WEBSITE/product_images/870-957033/K5iXEYmG2a4QncRBOrvL.JPG LS16ZBC_1.jpeg
WEBSITE/product_images/870-957033/fbaj3T5dKtmH0HTX11q5.JPG LS16ZBC_2.jpeg
WEBSITE/product_images/870-957033/WvBUOrjCMWQGe4gwNhrF.JPG LS16ZBC_3.jpeg
WEBSITE/product_images/870-957033/ixtB4SbtrFZTIVotvxSd.JPG LS16ZBC_4.jpeg
$ cat tst.awk
$2 == "product_sku" {
    sku = $4
    gsub(/\047/,"",sku)
    cnt = 0
}
s = index($0,"WEBSITE/product_images/870-") {
    printf "%s %s_%02d.JPG\n", substr($0,s), sku, ++cnt
}

$ awk -f tst.awk file
WEBSITE/product_images/870-972930/XafJtPxTqNQuPNQpjF5h.JPG NN26ZZA_01.JPG
WEBSITE/product_images/870-972930/9YZH6VMT2zH6AntfaAIG.JPG NN26ZZA_02.JPG
WEBSITE/product_images/870-972930/SrE9oVwVmJjS58SwZB9q.JPG NN26ZZA_03.JPG
WEBSITE/product_images/870-972930/1enLX6dc9bbG7k9SEAfL.JPG NN26ZZA_04.JPG
WEBSITE/product_images/870-768442/fg7G7CX2Z0oK8mCVlJN3.JPG LT65YMP_01.JPG
WEBSITE/product_images/870-768442/PGGJ5RaWoYx7VStbsBjL.JPG LT65YMP_02.JPG
WEBSITE/product_images/870-768442/SEEbiNEWA5MXsIUwuaZH.JPG LT65YMP_03.JPG
WEBSITE/product_images/870-768442/TrEPAFaEhxhMxQNDD8qh.JPG LT65YMP_04.JPG
WEBSITE/product_images/870-957033/K5iXEYmG2a4QncRBOrvL.JPG LS16ZBC_01.JPG
WEBSITE/product_images/870-957033/fbaj3T5dKtmH0HTX11q5.JPG LS16ZBC_02.JPG
WEBSITE/product_images/870-957033/WvBUOrjCMWQGe4gwNhrF.JPG LS16ZBC_03.JPG
WEBSITE/product_images/870-957033/ixtB4SbtrFZTIVotvxSd.JPG LS16ZBC_04.JPG

注意:此解决方案需要,
gawk
才能运行

@PS.您可能需要添加
gsub(“\047”,”,$NF)
p_sku=$NF之前
删除OP指出的单引号。@Demartini将上述命令中的print语句更改为
printf“%s%s%s%02d%s\n”、url、p\u sku、“\ux”、c、.jpeg”
@PS。您可能需要添加
gsub(“\047”,”,$NF)
p_sku=$NF之前
删除OP指出的单引号。@Demartini将上述命令中的print语句更改为
printf“%s%s%s%02d%s\n”、url、p\u sku、“\ux”、c、.jpeg”
$ cat tst.awk
$2 == "product_sku" {
    sku = $4
    gsub(/\047/,"",sku)
    cnt = 0
}
s = index($0,"WEBSITE/product_images/870-") {
    printf "%s %s_%02d.JPG\n", substr($0,s), sku, ++cnt
}

$ awk -f tst.awk file
WEBSITE/product_images/870-972930/XafJtPxTqNQuPNQpjF5h.JPG NN26ZZA_01.JPG
WEBSITE/product_images/870-972930/9YZH6VMT2zH6AntfaAIG.JPG NN26ZZA_02.JPG
WEBSITE/product_images/870-972930/SrE9oVwVmJjS58SwZB9q.JPG NN26ZZA_03.JPG
WEBSITE/product_images/870-972930/1enLX6dc9bbG7k9SEAfL.JPG NN26ZZA_04.JPG
WEBSITE/product_images/870-768442/fg7G7CX2Z0oK8mCVlJN3.JPG LT65YMP_01.JPG
WEBSITE/product_images/870-768442/PGGJ5RaWoYx7VStbsBjL.JPG LT65YMP_02.JPG
WEBSITE/product_images/870-768442/SEEbiNEWA5MXsIUwuaZH.JPG LT65YMP_03.JPG
WEBSITE/product_images/870-768442/TrEPAFaEhxhMxQNDD8qh.JPG LT65YMP_04.JPG
WEBSITE/product_images/870-957033/K5iXEYmG2a4QncRBOrvL.JPG LS16ZBC_01.JPG
WEBSITE/product_images/870-957033/fbaj3T5dKtmH0HTX11q5.JPG LS16ZBC_02.JPG
WEBSITE/product_images/870-957033/WvBUOrjCMWQGe4gwNhrF.JPG LS16ZBC_03.JPG
WEBSITE/product_images/870-957033/ixtB4SbtrFZTIVotvxSd.JPG LS16ZBC_04.JPG