2016-02-08 31 views
1

我正在尝试使用wget下载的列表中的单行添加URL。将URL添加到特定文件中的行

下面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 
+0

pluse-uno用于示例数据,输出和代码! – shellter

回答

3

选择一个分隔符字符(这里管)不是你的URL字符串的一部分。

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

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

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

我添加了一个编辑错误,但我可以手动访问该目录。谢谢 :)。 – Chris

+0

不明白!你有一个名为“http:// ...”的目录?错误来自哪里? 'sed'不能访问url,只有指定的输入/输出文件看起来不同。 – karakfa

+0

我想我只需要使用'sed'将文本添加到每行的开头,但是将'sed:-e表达式#1,字符13:未知选项设置为's''。我将在编辑中发布我的命令。谢谢 :)。 – Chris

相关问题