首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将内容回显到由cat生成的一系列新文件中

如何将内容回显到由cat生成的一系列新文件中
EN

Unix & Linux用户
提问于 2018-12-04 15:32:35
回答 2查看 414关注 0票数 1

我想写一个循环来生成22个R脚本,其中的内容是在echo中生成的。在这个循环中,有什么问题使我无法获得包含相应内容的22个文件?

我测试了echo "i want that file" > file.r

效果很好。然后我进行了测试,它被视为两个独立的过程。它首先回显文本,然后生成22个空文件。

代码语言:javascript
复制
for i in `seq 1 22`; do
    echo "a <- read.delim('file${i}.txt', header=T, check.names=FALSE);
        library('splitstackshape');
        loc1 <- cSplit(a, 'V1', ':');
        rm(a);
        out <- cbind.data.frame(loc1$V1_1, loc1$V1_2);
        write.table(out, 'out_file${i}.txt', sep='\t', row.names=F, quote=F)"; 
> build_file${i}.r; done

然后我试过这个..。还是不工作..。

代码语言:javascript
复制
    for i in `seq 1 22`; do
    echo "a <- read.delim("file${i}.txt", header=T, check.names=FALSE);
    library("splitstackshape");
    loc1 <- cSplit(a, "V1", ":");
    rm(a);
    out <- cbind.data.frame(loc1$V1_1, loc1$V1_2);
    write.table(out, "out_file${i}.txt", sep="\t", row.names=F, quote=F)";
    cat > loc_chr${i}.r; done
EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2018-12-04 15:49:08

我不确定我完全遵循了脚本中的引用,以及您希望cat命令做什么,因为它从非重定向的stdin (大概是您的键盘)中读取。不如像这样

代码语言:javascript
复制
for i in `seq 1 22`
  do cat <<- EOF > loc_chr${i}.r
"a <- read.delim("file${i}.txt", header=T, check.names=FALSE);
    library("splitstackshape");
    loc1 <- cSplit(a, "V1", ":");
    rm(a);
    out <- cbind.data.frame(loc1$V1_1, loc1$V1_2);
    write.table(out, "out_file${i}.txt", sep="\t", row.names=F, quote=F)"
EOF
   done
票数 1
EN

Unix & Linux用户

发布于 2018-12-04 15:48:35

您的第一个代码示例无法工作,因为它在自己的行上有> build_file${i}.r,它没有将任何内容重定向到20个文件中。将> build_file${i}.r附加到echo的末尾。

您的第二个代码示例由于底部的cat而无法工作。您没有提供您希望cat连接的内容,因此它正在等待输入。

您应该删除cat行,并将> loc_chr${i}.r追加到echo的末尾。

代码语言:javascript
复制
for i in `seq 1 22`; do
echo "a <- read.delim("file${i}.txt", header=T, check.names=FALSE);
library("splitstackshape");
loc1 <- cSplit(a, "V1", ":");
rm(a);
out <- cbind.data.frame(loc1$V1_1, loc1$V1_2);
write.table(out, "out_file${i}.txt", sep="\t", row.names=F, quote=F)" > loc_chr${i}.r
done
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/485923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档