我需要从url列表中检索文本。
我有带有ID和URL的csv (约15万行)。在这个URL上,没有HTML代码的只是纯文本。
我需要用输入csv的ID将这段文字写入csv。
例如,wget就有这种可能吗?
输入CSV
9788075020536×http://pemic-books.cz/ASPX/Annotation.aspx?kod=0180853
输出CSV
9788075020536 Učebnice dílem kolektivu autorůústavního práva Právnickéfakulty Karlovy诉Praze a externích spolupracovníků。V souladu‘s tradičním pojetímústavního práva je obecnástátověda podána jako jeho vstupnía neoddělitelnásoučást。Kniha je reprintem původního vydíz roku 1998,诉nakladatelstvíLeges vydípoprvé。Na u učebnici navazuje a stavníprávo a státověda,2. díl,stavníprávoČeskérepubliky,kter byl vydánínakladatelstvím Leges诉roce 2011
发布于 2017-08-27 11:27:31
假设您有以下列
curlcsv文件内容:
0001|columnbefore1|https://www.random.org/integers/?num=1&min=1&max=2&col=1&base=10&format=plain&rnd=new|columnafter1
0002|columnbefore2|https://www.random.org/integers/?num=1&min=3&max=4&col=1&base=10&format=plain&rnd=new|columnafter2
0003|columnbefore3|https://www.random.org/integers/?num=1&min=5&max=6&col=1&base=10&format=plain&rnd=new|columnafter3以下是您可以使用的“一行”:
/^(([^|]+[|]){2}) -2这里的意思是跳过2列(在您的例子中,跳过1列)
([^|]+) -获取url列的内容
([|][^|]+)* -保存rest列值
结果文件如下所示:
0001
这种方法将限制打开的文件(见下面的JaromírHeimlich评论)
解决这一限制问题的办法可以是:
split -l 100 curlcsv & ls grep -v curlcsv -n 1 gawk‘{ match($0,/^(^|+|){2})(^|+)(|+)*$/,arr;req = "curl -s \“”arr3“\\”;req _ getline res;打印arr1“res”arr4;}’>/结果xargs >
将curlcsv放置到一个空文件夹中,因为split会在该目录中创建大量的部分列表。/^(([^|]+[|]){2}) -2这里的意思是跳过2列(在您的例子中,跳过1列)
在本例中,sed构造bash脚本以获得结果。
由于此解决方案生成bash命令,因此不存在gawk解决方案的限制问题。https://stackoverflow.com/questions/45903011
复制相似问题