将URL添加到特定文件中的行

时间:2016-02-08 22:16:11

标签: bash wget

我正在尝试将网址添加到使用wget下载的列表中的各个行。

下面的Bash脚本的第一部分下载列表,URL是静态的。 sed命令试图将URL添加到列表中。

的bash

#!/bin/bash
wget -q --user=xxxx --password=xxxxx --xxxx \
xxx://www.xxx.com/xxxx/xxx/xxxx/list

url=xxx://www.xxx.com/xxxx/xxx/xxxx/

sed s/$url/ list.txt | url_list.txt
sed: -e expression #1, char 14: unknown option to `s'

当前列表

FilterDuplicates.html
file1.bam
file2.bam
file1.vcf.gz
file2.vcf.gz

所需列表(使用文件名前的$url

xxx://www.xxx.com/xxxx/xxx/xxxx/FilterDuplicates.html
xxx://www.xxx.com/xxxx/xxx/xxxx/file1.bam
xxx://www.xxx.com/xxxx/xxx/xxxx/file2.bam
xxx://www.xxx.com/xxxx/xxx/xxxx/file1.vcf.gz
xxx://www.xxx.com/xxxx/xxx/xxxx/file2.vcf.gz

修改

#!/bin/bash
 wget -q --user=xxxx --password=xxxx --xxxx \
 https://www.xxxx.com/xxx/xx/xxxx/file

 $url="https://www.xxxx.com/xxx/xx/xxxx/";
 sed "s|^|$url|" /home/cmccabe/list > /home/cmccabe/url_list.txt
 https://www.xxxx.com/xxx/xx/xxxx/: no such file or directory

这是sed已关闭,但它会将url追加到文件的末尾,而不是像所需输出那样追加到每一行。谢谢:))

sed -i '$a https://www.xxxx.com/xxx/xx/xxxx/' /home/cmccabe/list

输出

FilterDuplicates.html
file1.bam
file2.bam
file1.vcf.gz
file2.vcf.gz
https://www.xxxx.com/xxx/xx/xxxx/

用于添加文字的sed命令

sed 's/^/https://www.xxxx.com/xxx/xx/xxxx//' /home/cmccabe/list

1 个答案:

答案 0 :(得分:3)

选择一个分隔符char(此处为pipe),而不是url字符串的一部分。

sed 's|^|http://example.com/|' file

或者如果您将url作为变量,则最简单的方法是使用双引号。

$ url="http://example.com/"; sed "s|^|$url|" file