将多个命令的结果发送到一个文本文件?

时间:2009-10-23 09:01:25

标签: sed awk public dropbox cat

这就是我到目前为止 - 我的dropbox public URL创建脚本,用于公共URL目录(getdropbox.com - gpl我认为)。我的LIST文件是使用ls以下列方式创建的:

ls -d ~/Dropbox/Public/PUBLICFILES/* > LIST

dropboxpuburl.sh:

for PATH in `cat LIST`
do
   echo $PATH
   dropbox puburl $PATH > ~/URLLIST/$PATH
done

现在,这会创建一系列文件 - 每个文件都包含dropbox puburl。

问题是:如何让这个脚本将所有公共链接重定向到一个文本文件,每个文本文件都在一个新行上 - 可能名称为 PUBLIC-DIRECTORY-LIST

4 个答案:

答案 0 :(得分:3)

这是你想要达到的目标吗?

for PATH in `cat LIST`
   do
      echo $PATH
      dropbox puburl $PATH >> filename
   done

答案 1 :(得分:1)

好的,我已经使用了给我的建议了:

for PATH in `cat LIST`
do
    echo $PATH
    dropbox puburl $PATH
done > PUBLIC-DIRECTORY-LIST

它创建一个目录列表,在它们下面是公共链接。现在是时候修剪目录以获得链接的干净文本文件了。

答案 2 :(得分:0)

=>创建文件并向第一行添加内容。 >>在新的一行上贴上它。

echo txt=>PUBLIC-DIRECTORY-LIST.txt |
echo another text>>PUBLIC-DIRECTORY-LIST.txt 

答案 3 :(得分:0)

您应该将while readfor一起使用输入重定向而不是cat filename。另外,为了避免变量名称冲突,我将路径变量更改为小写,因为shell已经使用了全部大写。它不会影响您的交互式shell,但它可能会影响您脚本中的某些内容。

此外,假设您希望输入文件中的行作为进度指示器显示在屏幕上,但未在输出文件中捕获,则echo会将其发送到stderr。< / p>

while read path
do
    echo $path >&2
    dropbox puburl $path
done < LIST > PUBLIC-DIRECTORY-LIST